ZeroClipboard.js使用一个flash复制多个文本框


Posted in Javascript onJune 19, 2017

ZeroClipboard.js是一个支持复制和粘贴的JavaScript插件,目前官方已经到2.x的版本了,但不支持IE9以下的浏览器,而如果要兼容,则可以使用1.x的版本,我使用的是最开始的一个版本:1.0.7的。该版本支持IE7和IE8,今天主要介绍如何使用一个flash支持多个复制文本。

一般我们需要复制一个地方的时候,大多都使用下面这个代码新建一个对象:

<div id="J_pop_share">
  <input id="J_video_iframe1" value="<iframe src="http://caibaojian.com/book/"></iframe>" />
  <button id="J_copy_btn1">复制</button>
</div>

单个:

var clip = null;//ZeroClipboard.Client对象 
var current_id = null;//当前所在的文本元素id 
//指定ZeroClipboard.swf位置
ZeroClipboard.setMoviePath(location.protocol+"//club.pcauto.com.cn/js/ZeroClipboard.swf"); 
clip = new ZeroClipboard.Client();//创建ZeroClipboard.Client对象 
clip.setHandCursor(true);//鼠标移动到元素上之后显示手型 
clip.glue('J_copy_btn1','J_pop_share');
clip.setText($('#J_video_iframe1').val());
//添加复制成功之后的操作 
clip.addEventListener('complete', function() { 
  alert('复制成功'); 
});

如果有多个的话,是不是需要新建四个flash对象呢?可能没尝试过的人会这么做,这篇文章分享另外一种做法,就是在上面这个flash的基础上,当移动到另外一个按钮时,改变flash的位置和复制的文本。

多个文本的HTML代码:

<div id="J_pop_share">
  <div>
    <input id="J_video_iframe1" value="<iframe src="http://caibaojian.com/book/"></iframe>" />
    <button id="J_copy_btn1" class="btn-copy-text">复制</button>
  </div>
  <div>
    <input id="J_video_iframe2" value="<iframe src="http://caibaojian.com/book/"></iframe>" />
    <button id="J_copy_btn2" class="btn-copy-text">复制</button>
  </div>
  <div>
    <input id="J_video_iframe3" value="<iframe src="http://caibaojian.com/book/"></iframe>" />
    <button id="J_copy_btn3" class="btn-copy-text">复制</button>
  </div>
  <div>
    <input id="J_video_iframe4" value="<iframe src="http://caibaojian.com/book/"></iframe>" />
    <button id="J_copy_btn4" class="btn-copy-text">复制</button>
  </div>
</div>

javascript代码:在上面js的基础上,加上下面这个代码

//上面的代码
$(".btn-copy-text").each(function(i){
  var index =i+1;
  $(this).on('mouseover',function(){
    var button_id = $(this).attr('id');//复制div的id 
    //var text_id = button_id+'_text';//要复制的元素id 
    var text_id = 'J_video_iframe'+(index);
    move_swf(text_id , button_id); 
  }); 
}); 

//移动浮动flash div到指定的地方,从而只需要使用一个flash即可在多个地方实现复制功能 
function move_swf(text_id,button_id) { 
  //重新指定flash浮动div位置,用reposition 
  clip.reposition(button_id, 'J_pop_share');
  clip.setText($('#'+text_id).val()); 
}

在使用ZeroClipboard.js时,可能会出现复制不起作用或者其它诡异的bug,例如我今天在IE中,由于内容是放在弹窗里面,复制第一个是可以的,但第二个则会报错,提示“没有这个对象”,调试了好久,始终无法解决,后来不隐藏弹窗,却不会报错,所以,我觉得应该是flash隐藏和显示有关,把弹窗隐藏改用绝对定位加left:-9999px,显示的时候,再定位正确的left值就不会报错了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中valueOf函数与toString方法深入理解
Dec 02 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
Mar 03 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
Vue动态组件实例解析
Aug 20 Javascript
详解HTML5 使用video标签实现选择摄像头功能
Oct 25 Javascript
基于ionic实现下拉刷新功能
May 10 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 Javascript
vue 优化CDN加速的方法示例
Sep 19 Javascript
小程序测试后台服务的方法(ngrok)
Mar 08 Javascript
实现高性能javascript的注意事项
May 27 Javascript
javascript History对象原理解析
Feb 17 Javascript
AngularJS的ng-click传参的方法
Jun 19 #Javascript
JavaScript队列函数和异步执行详解
Jun 19 #Javascript
JS检测是否可以访问公网服务器功能代码
Jun 19 #Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
Jun 19 #Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 #Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 #Javascript
jQuery 实现双击编辑表格功能
Jun 19 #jQuery
You might like
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
js判断空对象的实例(超简单)
2016/07/26 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
easyUI下拉列表点击事件使用方法
2017/05/18 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
详细分析python3的reduce函数
2017/12/05 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Python使用matplotlib 模块scatter方法画散点图示例
2019/09/27 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
经理管理专业毕业自荐书范文
2014/02/12 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
宣传普通话标语
2014/06/27 职场文书
尊师重教演讲稿
2014/09/04 职场文书
2014年管理工作总结
2014/11/22 职场文书
骨干教师考核评语
2014/12/31 职场文书
单位实习介绍信
2015/05/05 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
婚姻出轨保证书
2015/05/08 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
nginx 配置缓存
2022/05/11 Servers