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介绍
Sep 28 Javascript
基于jquery的横向滚动条(滑动条)
Feb 24 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
有关json_decode乱码及NULL的问题
Oct 13 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
jQuery获取checkbox选中的值
Jan 28 Javascript
浅谈vuejs实现数据驱动视图原理
Feb 23 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
Jan 09 Javascript
vue 父组件中调用子组件函数的方法
Jun 06 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
Nov 27 Javascript
Preload基础使用方法详解
Feb 03 Javascript
Vue切换Tab动态渲染组件的操作
Sep 21 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
德生S2000电路分析
2021/03/02 无线电
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
JavaScript几种形式的树结构菜单
2010/05/10 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
Python将图片转换为字符画的方法
2020/06/16 Python
python使用turtle库绘制时钟
2020/03/25 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
美国迪克体育用品商店:DICK’S Sporting Goods
2018/07/24 全球购物
瑞士男士时尚网上商店:Babista
2020/05/14 全球购物
电子专业毕业生自荐信
2014/05/25 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
给客户的感谢信
2015/01/21 职场文书
现实表现证明材料
2015/06/19 职场文书
社区干部培训心得体会
2016/01/06 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
改进工作作风心得体会
2016/01/23 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
2019通用版导游词范本!
2019/08/07 职场文书