简单实现兼容各大浏览器的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 相关文章推荐
Javascript 篱式条件判断
Aug 22 Javascript
asp.net下利用js实现返回上一页的实现方法小集
Nov 24 Javascript
jQuery UI AutoComplete 自动完成使用小记
Aug 21 Javascript
js取模(求余数)隔行变色
May 15 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
Sep 01 Javascript
Javascript获取当前日期的农历日期代码
Oct 08 Javascript
JS实现跟随鼠标闪烁转动色块的方法
Feb 26 Javascript
基于zepto.js简单实现上传图片
Jun 21 Javascript
JavaScript html5利用FileReader实现上传功能
Mar 27 Javascript
JavaScript防止全局变量污染的方法总结
Aug 02 Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 Javascript
vue+ESLint 配置保存 自动格式化代码
Mar 17 Javascript
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面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
2018/06/19 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
python统计日志ip访问数的方法
2015/07/06 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python 处理图片像素点的实例
2019/01/08 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
彪马香港官方网上商店:PUMA香港
2020/12/06 全球购物
审计工作个人的自我评价
2013/12/25 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
德语专业求职信
2014/03/12 职场文书
个人授权委托书模板
2014/09/14 职场文书
合作合同协议书范本
2015/01/27 职场文书
党员个人承诺书
2015/04/27 职场文书
高中优秀作文(范文)
2019/08/15 职场文书