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 相关文章推荐
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
五个jQuery图片画廊插件 推荐
May 12 Javascript
容易造成JavaScript内存泄露几个方面
Sep 04 Javascript
JavaScript简介
Feb 15 Javascript
JS建造者模式基本用法实例分析
Jun 30 Javascript
JQuery标签页效果实例详解
Dec 24 Javascript
用AngularJS的指令实现tabs切换效果
Aug 31 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
简单谈谈ES6的六个小特性
Nov 18 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 Javascript
vue项目中极验验证的使用代码示例
Dec 03 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 和 HTML
2006/10/09 PHP
解析php5配置使用pdo
2013/07/03 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
AngularJS入门教程(零):引导程序
2014/12/06 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
jQuery实现鼠标移入显示蒙版效果
2020/01/11 jQuery
[03:04]DOTA2英雄基础教程 影魔
2013/12/11 DOTA
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
图解Python变量与赋值
2018/04/03 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Django文件存储 自己定制存储系统解析
2019/08/02 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
pygame实现成语填空游戏
2019/10/29 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
python怎么判断模块安装完成
2020/06/19 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
香港最大的洋酒零售连锁店:屈臣氏酒窖(Watson’s Wine)
2018/12/10 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
小学教研工作制度
2014/01/15 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
先进班组事迹材料
2014/12/25 职场文书
出纳岗位职责范本
2015/03/31 职场文书
晚会开场白和结束语
2015/05/29 职场文书
孝女彩金观后感
2015/06/10 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python