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代码
Jun 30 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
Aug 12 Javascript
javascript使用prototype完成单继承
Dec 24 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
Aug 26 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
Jun 21 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
Dec 09 Javascript
微信小程序顶部导航栏滑动tab效果
Jan 28 Javascript
js实现图片3D轮播效果
Sep 21 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 Javascript
vue-cli4.x创建企业级项目的方法步骤
Jun 18 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
详解Yii实现分页的两种方法
2017/01/14 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
使javascript也能包含文件
2006/10/26 Javascript
JQuery的一些小应用收集
2010/03/27 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
three.js实现圆柱体
2018/12/30 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
详解React 元素渲染
2020/07/07 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
python遍历目录的方法小结
2016/04/28 Python
浅谈Python的垃圾回收机制
2016/12/17 Python
Python 实现字符串中指定位置插入一个字符
2018/05/02 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
食品安全检查制度
2014/02/03 职场文书
护士旷工检讨书
2015/08/15 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
HTML基本元素标签介绍
2022/02/28 HTML / CSS