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计数器代码
Nov 04 Javascript
JS 文字符串转换unicode编码函数
May 30 Javascript
Jquery倒计时源码分享
May 16 Javascript
js中函数调用的两种常用方法使用介绍
Jul 17 Javascript
JavaScript常用脚本汇总(三)
Mar 04 Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
简述pm2常用命令集合及配置文件说明
May 30 Javascript
深入了解query和params的使用区别
Jun 24 Javascript
react组件基本用法示例小结
Apr 27 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
3
2006/10/09 PHP
PHP 的 __FILE__ 常量
2007/01/15 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
jquery ready函数源代码研究
2009/12/06 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
2015/07/05 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
小程序自定义日历效果
2018/12/29 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
js实现简单扫雷
2020/11/27 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
python strip()函数 介绍
2013/05/24 Python
python基础教程之获取本机ip数据包示例
2014/02/10 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
服务生自我鉴定
2014/01/22 职场文书
三个儿子教学反思
2014/02/03 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书