简单实现兼容各大浏览器的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 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
JavaScript 应用类库代码
Jun 02 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
Bootstrap被封装的弹层
Jul 20 Javascript
微信小程序 wxapp地图 map详解
Oct 31 Javascript
js实现倒计时关键代码
May 05 Javascript
vue 实现剪裁图片并上传服务器功能
Mar 01 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
详解Vue中的scoped及穿透方法
Apr 18 Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 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中的串行化变量和序列化对象
2006/09/05 PHP
基于mysql的bbs设计(三)
2006/10/09 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
了解一点js的Eval函数
2012/07/26 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
代码分析Python地图坐标转换
2018/02/08 Python
python 创建一个空dataframe 然后添加行数据的实例
2018/06/07 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
浅谈Python基础—判断和循环
2019/03/22 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
教代会开幕词
2015/01/28 职场文书
李强为自己工作观后感
2015/06/11 职场文书
教师节主题班会教案
2015/08/17 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
浅析NIO系列之TCP
2021/06/15 Java/Android
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
Java详细解析==和equals的区别
2022/04/07 Java/Android
Android Studio 计算器开发
2022/05/20 Java/Android