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 相关文章推荐
动态调用CSS文件的JS代码
Jul 29 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
Mar 10 Javascript
jquery 无限级联菜单案例分享
Mar 26 Javascript
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
Javascript 颜色渐变效果的实现代码
Oct 01 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 Javascript
JavaScript实现各种排序的代码详解
Aug 28 Javascript
微信小程序实现流程进度的图样式功能
Jan 16 Javascript
微信小程序画布圆形进度条显示效果
Nov 17 Javascript
Vue路由history模式解决404问题的几种方法
Sep 29 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
Aug 22 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
Feb 06 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代码保护--Zend Guard的使用详解
2013/06/03 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
js每隔5分钟执行一次ajax请求的实现方法
2013/11/27 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
jQuery替换节点元素的操作方法
2018/03/18 jQuery
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
vue Element左侧无限级菜单实现
2020/06/10 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python函数的周期性执行实现方法
2016/08/13 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
加热夹克:RAVEAN
2018/10/19 全球购物
自荐书模板
2013/12/19 职场文书
承办会议欢迎词
2014/01/17 职场文书
大专生自我评价
2014/01/28 职场文书
乐山大佛导游词
2015/02/02 职场文书
英文邀请函
2015/02/02 职场文书
计划生育工作总结2015
2015/04/03 职场文书
js Proxy的原理详解
2021/05/25 Javascript
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript