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+Flash实现访问剪切板操作
Nov 20 Javascript
js防止表单重复提交的两种方法
Sep 30 Javascript
jquery不常用方法汇总
Jul 26 Javascript
解决js图片加载时出现404的问题
Nov 30 Javascript
node.js require() 源码解读
Dec 13 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
JS原型链怎么理解
Jun 27 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
bootstrap组件之导航组件使用方法
Jan 19 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 Javascript
JavaScript实现简单计算器功能
Dec 19 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
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
PHP中overload与override的区别
2017/02/13 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
JS的replace方法详细介绍
2012/11/09 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
Vue之Watcher源码解析(2)
2017/07/19 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
js判断节假日实例代码
2017/12/27 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
在Django中同时使用多个配置文件的方法
2015/07/22 Python
python实现决策树
2017/12/21 Python
tensorflow获取变量维度信息
2018/03/10 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
用python按照图像灰度值统计并筛选图片的操作(PIL,shutil,os)
2020/06/04 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
allbeauty美国:英国在线美容店
2019/03/11 全球购物
教导处工作制度
2014/01/18 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
《棉鞋里的阳光》教学反思
2014/04/24 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
单身申明具结书
2015/02/26 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
小学思想品德教学反思
2016/02/24 职场文书