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 相关文章推荐
下拉列表select 由左边框移动到右边示例
Dec 04 Javascript
javaScript中的this示例学习详解及工作原理
Jan 13 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
AngularJS中如何使用echart插件示例详解
Oct 26 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 Javascript
vue.js 获取select中的value实例
Mar 01 Javascript
使用Vue制作图片轮播组件思路详解
Mar 21 Javascript
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
原生js实现贪食蛇小游戏的思路详解
Nov 26 Javascript
JavaScript数组排序小程序实现解析
Jan 13 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 方便水印和缩略图的图形类
2009/05/21 PHP
php 缩略图实现函数代码
2011/06/23 PHP
php 函数中使用static的说明
2012/06/01 PHP
js 学习笔记(三)
2009/12/29 Javascript
javascript中常用编程知识
2013/04/08 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
Vue页面骨架屏的实现方法
2018/05/22 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
小程序实现密码输入框
2020/11/16 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
python监控键盘输入实例代码
2018/02/09 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
Flask框架WTForm表单用法示例
2018/07/20 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
python异步存储数据详解
2019/03/19 Python
pytorch 限制GPU使用效率详解(计算效率)
2020/06/27 Python
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
英国打印机墨盒销售网站:Ink Factory
2019/10/07 全球购物
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
年会主持词结束语
2014/03/27 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
科技活动周标语
2014/10/08 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年检验科工作总结
2014/11/22 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
新郎新娘答谢词
2015/01/04 职场文书
学者《孟子》名人名言
2019/08/09 职场文书