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编程起步(第四课)
Jan 10 Javascript
JavaScript 密码强度判断代码
Sep 05 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
Jun 05 Javascript
基于jQuery选择器的整理集合
Apr 26 Javascript
二叉树先序遍历的非递归算法具体实现
Jan 09 Javascript
5个JavaScript经典面试题
Oct 13 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
Mar 03 Javascript
JS获取文件大小方法小结
Dec 08 Javascript
几行js代码实现自适应
Feb 24 Javascript
axios发送post请求,提交图片类型表单数据方法
Mar 16 Javascript
JavaScript创建防篡改对象的方法分析
Dec 30 Javascript
微信小程序自定义波浪组件使用方法详解
Sep 21 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中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
轻松实现php文件上传功能
2017/02/17 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
python处理cookie详解
2014/02/07 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
python如何运行js语句
2020/09/09 Python
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
SQL SERVER面试资料
2013/03/30 面试题
乌鸦喝水教学反思
2014/02/07 职场文书
2014年计生标语
2014/06/23 职场文书
基层党支部整改方案
2014/10/25 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
培训班通知
2015/04/25 职场文书
实习指导老师意见
2015/06/04 职场文书
2015年暑期见闻
2015/07/14 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
什么是Python装饰器?如何定义和使用?
2022/04/11 Python