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 相关文章推荐
JQuery与Ajax常用代码实现对比
Oct 03 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 Javascript
判断滚动条到底部的JS代码
Nov 04 Javascript
基于javascript实现判断移动终端浏览器版本信息
Dec 09 Javascript
JavaScript简单实现弹出拖拽窗口(一)
Jun 17 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
Feb 04 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
Jun 28 Javascript
详解vue-cli下ESlint 配置说明
Sep 03 Javascript
redux.js详解及基本使用
May 24 Javascript
vuejs中父子组件之间通信方法实例详解
Jan 17 Javascript
原生js实现移动小球(碰撞检测)
Dec 17 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
Session保存到数据库的php类分享
2011/10/24 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
Python制作简单的网页爬虫
2015/11/22 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
Python3模拟登录操作实例分析
2019/03/12 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
关于pytorch中全连接神经网络搭建两种模式详解
2020/01/14 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
什么是属性访问器
2015/10/26 面试题
汇科协同Java笔试题
2012/03/31 面试题
给排水专业应届生求职信
2013/10/12 职场文书
毕业生文员求职信
2013/11/03 职场文书
大学毕业生的自我鉴定
2013/11/30 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
政风行风整改方案
2014/10/25 职场文书
个人委托函范文
2015/01/29 职场文书
客房部经理岗位职责
2015/02/02 职场文书
2022年四月新番
2022/03/15 日漫