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 相关文章推荐
jquery选择器的选择使用及性能介绍
Jan 16 Javascript
兼容主流浏览器的JS复制内容到剪贴板
Dec 12 Javascript
DOM基础教程之使用DOM控制表单
Jan 20 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
Aug 13 Javascript
jquery if条件语句的写法
May 19 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
Dec 19 Javascript
JS Select下拉框(支持输入模糊查询)
Feb 04 Javascript
基于bootstrap实现收缩导航条
Mar 17 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
详解angularJS自定义指令间的相互交互
Jul 05 Javascript
JavaScript闭包相关知识解析
Oct 19 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的开发框架的现状和展望
2007/03/16 PHP
php 日期时间处理函数小结
2009/12/18 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
利用python求相邻数的方法示例
2017/08/18 Python
对python判断是否回文数的实例详解
2019/02/08 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
python 爬虫请求模块requests详解
2020/12/04 Python
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
开办加工厂创业计划书
2014/01/03 职场文书
干部考察材料范文
2014/12/24 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
升学宴家长致辞
2015/07/27 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
docker-compose部署Yapi的方法
2022/04/08 Servers