简单实现兼容各大浏览器的js复制内容到剪切板


Posted in Javascript onSeptember 09, 2015

因为网站文章需要提供几个按钮,单击后实现复制文章内容到剪贴板。

在网上搜索了很多内容,发现都比较乱这里自己整理下,分享给大家

效果图如下:

简单实现兼容各大浏览器的js复制内容到剪切板

之前使用的是window.clipboardData.setData,只能支持IE和火狐。360浏览器、搜狗等浏览器,都泪崩。所以,研究了ZeroClipboard,尽量使用js代码写。

使用前先引用三个东西(没有提供上传附件,这里就不提供下载地址了,很常见,大家自己找度娘吧):

jquery-1.4.1.min.js   
ZeroClipboard.js  
ZeroClipboard.swf 

下面是最简单的实现了,做一下解释。

原理

把一个不可见的 Adobe Flash movie元素放到一个DOM元素上。用户点击那DOM元素时,其实点击的是那不可见的Adobe Flash movie元素,Flash代码来做将内容复制到剪切板的操作。

注意:如果用js模拟一个在那flash上的点击事件,并不能进行复制内容到剪贴板。原因是浏览器和flash的安全限制。

a标签就是一个按钮,你可以替换成图片等,但是id要和下面的clip.glue("copy_text");一致。

clip.setText(AddContent+ document.getElementById("id_div").innerText + AddContent);这一句的di_div就是要复制的Div的ID。这个ID可以是其他的标签的ID。想复制什么就写什么的ID。

其他的就原样复制。你需要改的,就是最上面两行,第一行就是需要复制的标签,一般你的网页里已经有了。只要给他设置个ID即可。那么第一行可以删掉。第二行就可以自由发挥,反正用超链接也好,图片也好,只要ID和下面的一样即可。

对于事先准备的三个文件,请上传到代码中所示的路径中。这个据说是在服务器运行才行,我直接上传服务器测试的

这里已经是最简化的代码了。网上的那些乱七八糟的,实在不忍直视,所以,做出来就及时和大家分享一下。如果本文章有问题要问,可以在博客留言。

 下面是实现的代码:

<div id="id_div">文本内容</div><br><a href='#' id="copy_text" title="以纯文本形式复制">复制文章纯文本内容</a><br>
<script type="text/javascript" src="/js/global/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="/js/global/ZeroClipboard.js"></script>
<script type="text/javascript">
var clip = null;
ZeroClipboard.setMoviePath("/js/global/ZeroClipboard.swf");
$(document).ready(function(){
    var AddContent = "\r\n本原创文章来源:C++技术网,阅读更多原创精品文章,欢迎访问C++技术网。\r\n";
  clip = new ZeroClipboard.Client();
  clip.setHandCursor(true);
  clip.setText(AddContent+ document.getElementById("id_div").innerText + AddContent);
  clip.glue("copy_text");
  clip.addEventListener("complete", function(){
    alert("文章纯文本内容已经复制到剪切板!");
  });
});
</script>
Javascript 相关文章推荐
基于Jquery+Ajax+Json的高效分页实现代码
Oct 29 Javascript
JavaScript表达式:URL 协议介绍
Mar 10 Javascript
jquery实现树形二级菜单实例代码
Nov 20 Javascript
js关于字符长度限制的问题示例探讨
Jan 24 Javascript
jQuery插件Validate实现自定义校验结果样式
Jan 18 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
Mar 25 Javascript
老生常谈 关于JavaScript的类的继承
Jun 24 Javascript
javascript特殊文本输入框网页特效
Sep 13 Javascript
javascript笔记之匿名函数和闭包
Feb 06 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 Javascript
如何解决js函数防抖、节流出现的问题
Jun 17 Javascript
jQuery实现全选按钮
Jan 01 jQuery
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 #Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 #Javascript
JS实现自动变换的菜单效果代码
Sep 09 #Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 #Javascript
JS实现自动变化的导航菜单效果代码
Sep 09 #Javascript
使用impress.js制作幻灯片
Sep 09 #Javascript
谈谈impress.js初步理解
Sep 09 #Javascript
You might like
PHP开发的一些注意点总结
2010/10/12 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
php文件上传的简单实例
2013/10/19 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
offsetParent 算法分析
2010/04/05 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
Python多线程爬虫简单示例
2016/03/04 Python
python实现百度语音识别api
2018/04/10 Python
基于python实现学生管理系统
2018/10/17 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
法学毕业生自我鉴定
2014/01/31 职场文书
浪费资源的建议书
2014/03/12 职场文书
校园联欢晚会主持词
2014/03/17 职场文书
2015年教学工作总结
2015/04/02 职场文书
收入证明申请书
2015/06/12 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
Python实现科学占卜 让视频自动打码
2022/04/09 Python