ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)


Posted in Javascript onAugust 30, 2014

但是值得注意的是官方介绍中已明确表态说这个插件不支持ie6,下面将提供多实例化Zero Clipboard复制功能的实现及兼容ie6的写法!

先下载ZeroClipboard https://3water.com/jiaoben/24961.html

<style type="text/css">
 body { font-family:arial,sans-serif; font-size:9pt; }
 .copyit {text-align:center; border:1px solid #FD6001; background-color:#ED730B; margin:10px; padding:2px 5px; cursor:pointer; font-size:12px; border-radius:3px;}
 .copyit.hover { background-color:#FD6001;}.copyit.active { background-color:#d25102;}/*鼠标hover效果,实为调用setCSSEffects()方法*/
 .copy_info{width:260px;height:100px;border:1px solid #ccc;padding:5px;}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="/js/ZeroClipboard/ZeroClipboard.js"></script>
<div class="clip_container">
<textarea id="fe_text" cols=50 rows=5 class="copycnt">第1个被复制的内容!!!</textarea>
<b class="copyit">复制内容</b>
</div>
<br/>
<div class="clip_container">
<textarea id="fe_text" cols=50 rows=5 class="copycnt">第2个被复制的内容!!!</textarea>
<b class="copyit">复制内容</b>
</div>
<script type="text/javascript">
var clip = null;
function copyThis() {
	if($.browser.version==6.0){
		//针对ie6
		$('.copyit').bind("click",function(){
		var code=$(this).parents(".clip_container").find(".copycnt").text();
		window.clipboardData.setData("Text",code);
		alert('被复制的内容:\n'+code);
	  })
	  return;
	}
	ZeroClipboard.setMoviePath("http://img.3water.com/js/scripts/clipboard.swf'");//如果ZeroClipboard.js, ZeroClipboard.swf放在同一目录下,可省略这句;
	clip = new ZeroClipboard.Client();
	$('.copyit').mouseover( function() {
	 var code=$(this).parents(".clip_container").find(".copycnt").text();
	 clip.setText(code);
	 if (clip.div) {//已创建过包含flash的父层div,则鼠标hover时重新定位flash层的位置
		 //clip.receiveEvent('mouseout', null);
		 clip.reposition(this);
	 }else{
		clip.glue(this)};
	 //clip.receiveEvent('mouseover', null);
	} );
	clip.addEventListener( 'complete', function(client, text){
	 alert("被复制内容:\n"+text);
	});
}
copyThis();
</script>
<textarea style="width:300px;height:300px;">
粘贴复制的内容到这里试试!!
</textarea>

上面的实现方法,除了ie6使用window.clipboardData.setData来实现复制功能外,其它浏览器都用Zero Clipboard 插件来实现复制功能!

使用该插件时应注意的几点:

1、以上 ZeroClipboard.js, ZeroClipboard.swf需要放在同一路径下。如果不在同一路径,可使用ZeroClipboard.setMoviePath( “Flash路径” );来设置ZeroClipboard.swf 地址。

2、setCSSEffects() 方法的解析: 当鼠标移到按钮上或点击时,由于有Flash按钮的遮挡,所以复制按钮本身体的 css “:hover”, “:active” 等伪类可能会失效。setCSSEffects() 方法就是解决这个问题。首先我们需要将伪类改成类,比如:

.copyit:hover{

 border-color:#FF6633;

}

// 需要将":hover"改成下面的".hover"

.copyit.hover{

 border-color:#FF6633;

}

3、getHTML() 方法的解析:如果你想自己实例一个Flash ,不用Zero Clipboard的附着方法,那么这个方法就可以帮上忙了。它接受两个参数,分别为Flash的宽度和高度。返回的是Flash对应的 HTML 代码。例如:
var html = clip.getHTML( 150, 20 );

Javascript 相关文章推荐
js 编程笔记 无名函数
Jun 28 Javascript
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
jquery.form.js用法之清空form的方法
Mar 07 Javascript
jQuery设置和获取HTML、文本和值示例
Jul 08 Javascript
前端程序员必须知道的高性能Javascript知识
Aug 24 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
js读取json文件片段中的数据实例
Mar 09 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
Dec 12 Javascript
序列化模块json代码实例详解
Mar 03 Javascript
JavaScript鼠标拖拽事件详解
Apr 03 Javascript
vue实现户籍管理系统
May 29 Javascript
JavaScript检测是否开启了控制台(F12调试工具)
Oct 02 Javascript
仿百度联盟对联广告实现代码
Aug 30 #Javascript
jQuery针对各类元素操作基础教程
Aug 29 #Javascript
jQuery事件用法实例汇总
Aug 29 #Javascript
laytpl 精致巧妙的JavaScript模板引擎
Aug 29 #Javascript
jQuery动画特效实例教程
Aug 29 #Javascript
jQuery实用函数用法总结
Aug 29 #Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 #Javascript
You might like
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
基于php编程规范(详解)
2017/08/17 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
jQuery实现跨域
2015/02/03 Javascript
jQuery实现折线图的方法
2015/02/28 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Django中多种重定向方法使用详解
2019/07/17 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
css3学习心得分享
2013/08/19 HTML / CSS
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
生产部经理岗位职责
2013/12/16 职场文书
招商专员岗位职责
2014/02/08 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
个人合伙协议书范本
2014/10/14 职场文书
通用员工手册范本
2015/05/14 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
Pandas 稀疏数据结构的实现
2021/07/25 Python