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 相关文章推荐
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
js中键盘事件实例简析
Jan 10 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
javascript实现随机生成DIV背景色
Jun 20 Javascript
详解jquery选择器的原理
Aug 01 jQuery
微信小程序使用checkbox显示多项选择框功能【附源码下载】
Dec 11 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
详解vue中axios的使用与封装
Mar 20 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
Nov 11 jQuery
Vue+Element-UI实现上传图片并压缩
Nov 26 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
Jul 27 Javascript
JavaScript动画实例之粒子文本的实现方法详解
Jul 28 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/04 PHP
php-fpm配置详解
2014/02/12 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
PHP常用技巧汇总
2016/03/04 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
canvas绘制多边形
2017/02/24 Javascript
微信小程序 获取二维码实例详解
2017/06/23 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
tensorflow实现简单的卷积神经网络
2018/05/24 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
Python自动化操作实现图例绘制
2020/07/09 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
DC Shoes澳大利亚官方网上商店:购买DC鞋子
2019/10/25 全球购物
监察建议书范文
2014/03/12 职场文书
美术学专业求职信
2014/07/23 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
大雁塔导游词
2015/02/04 职场文书
工作能力自我评价2015
2015/03/05 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Python+Appium实现自动抢微信红包
2021/05/21 Python
python运行脚本文件的三种方法实例
2022/06/25 Python