简单实现兼容各大浏览器的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封装DOMContentLoaded事件实例
Jun 12 Javascript
jQuery实现返回顶部功能
Feb 23 Javascript
Bootstrap每天必学之折叠(Collapse)插件
Apr 25 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
Jun 08 Javascript
JavaScript实现简单生成随机颜色的方法
Sep 21 Javascript
JavaScript之解构赋值的理解
Jan 30 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 Javascript
Node.js之readline模块的使用详解
Mar 25 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
vue中英文切换实例代码
Jan 21 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 Javascript
JS中多层次排序算法的实现代码
Jan 06 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 强制下载文件实现代码
2013/10/28 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
javascript 学习之旅 (2)
2009/02/05 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python进阶篇之字典操作总结
2016/11/16 Python
python按照多个条件排序的方法
2019/02/08 Python
对python3.4 字符串转16进制的实例详解
2019/06/12 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
利群广告词
2014/03/20 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
妇女干部培训方案
2014/05/12 职场文书
五五普法心得体会
2014/09/04 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
欢送领导祝酒词
2015/08/12 职场文书