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获得地址栏参数的两种方法
Nov 08 Javascript
javascript最常用与实用的创建类的代码
Aug 12 Javascript
javascript 日期时间 转换的方法
Feb 21 Javascript
JS控制文本框textarea输入字数限制的方法
Jun 17 Javascript
JavaScript的jQuery库中function的存在和参数问题
Aug 13 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
浅谈js的ajax的异步和同步请求的问题
Oct 07 Javascript
微信小程序 上传头像的实例详解
Oct 27 Javascript
JS获取input[file]的值并显示在页面的实现方法
Mar 09 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
Apr 24 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
基于JavaScript实现贪吃蛇游戏
Mar 16 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性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
php session的锁和并发
2016/01/22 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
xmlHTTP实例
2006/10/24 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
jQuery使用hide方法隐藏指定元素class样式用法实例
2015/03/30 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
Python callable内置函数原理解析
2020/03/05 Python
如何在python中判断变量的类型
2020/07/29 Python
改变生活的男士内衣:SAXX Underwear
2019/08/28 全球购物
影视制作岗位职责
2013/12/04 职场文书
护理专业学生的求职信范文
2013/12/11 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
旅游市场营销方案
2014/03/09 职场文书
社区食品安全实施方案
2014/03/28 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
创业计划书之干洗店
2019/09/10 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记