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 相关文章推荐
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 Javascript
jQuery 表单验证扩展代码(二)
Oct 20 Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
fmt:formatDate的输出格式详解
Jan 09 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
JavaScript定时器制作弹窗小广告
Feb 05 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
Feb 07 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
微信小程序 行的删除和增加操作实现详解
Sep 29 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 Javascript
手动实现vue2.0的双向数据绑定原理详解
Feb 06 Vue.js
JavaScript 获取滚动条位置并将页面滑动到锚点
Feb 08 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 STRING 陷阱原理说明
2010/07/24 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
Python3字符串学习教程
2015/08/20 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
python 如何引入协程和原理分析
2020/11/30 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
党校培训自我鉴定
2014/02/01 职场文书
国企干部对照检查材料
2014/08/22 职场文书
好人好事演讲稿
2014/09/01 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
李强为自己工作观后感
2015/06/11 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
vue router 动态路由清除方式
2022/05/25 Vue.js