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 相关文章推荐
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
Jan 07 Javascript
jquery命令汇总,方便使用jquery的朋友
Jun 26 Javascript
可以用鼠标拖动的DIV实现思路及代码
Oct 21 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
May 10 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
Dec 26 Javascript
详解vue-video-player使用心得(兼容m3u8)
Aug 23 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
如何手写简易的 Vue Router
Oct 10 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
Oct 26 Javascript
jQuery实现动态向上滚动
Dec 21 jQuery
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
推荐文章系统(一)
2006/10/09 PHP
一些常用的php函数
2006/12/06 PHP
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
python中正则表达式的使用详解
2014/10/17 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
指针和引用有什么区别
2013/01/13 面试题
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
应届毕业生自我评价分享
2013/12/15 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
尊老爱幼演讲稿
2014/09/04 职场文书
党支部考察意见范文
2015/06/02 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
Java中API的使用方法详情
2022/04/06 Java/Android