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 相关文章推荐
Prototype Array对象 学习
Jul 19 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
Javascript闭包实例详解
Nov 29 Javascript
基于JavaScript实现瀑布流布局(二)
Jan 26 Javascript
JavaScript对Json的增删改属性详解
Jun 02 Javascript
自学实现angularjs依赖注入
Dec 20 Javascript
微信小程序 传值取值的几种方法总结
Jan 16 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
trackingjs+websocket+百度人脸识别API实现人脸签到
Nov 26 Javascript
JavaScript中常用的简洁高级技巧总结
Mar 10 Javascript
JavaScript中EventBus实现对象之间通信
Oct 18 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
将数组写入txt文件 var_export
2009/04/21 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
python读取Android permission文件
2013/11/01 Python
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
详解Python中find()方法的使用
2015/05/18 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
在PyCharm中批量查找及替换的方法
2019/01/20 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
python定义类self用法实例解析
2020/01/22 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
工地质量标语
2014/06/12 职场文书
文言文辞职信
2015/02/28 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
高二化学教学反思
2016/02/22 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server