简单实现兼容各大浏览器的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中的闭包原理分析
Mar 08 Javascript
jQuery extend 的简单实例
Sep 18 Javascript
可以浮动某个物体的jquery控件用法实例
Jul 24 Javascript
限制只能输入数字的实现代码
May 16 Javascript
js利用正则表达式检验输入内容是否为网址
Jul 05 Javascript
mvc中form表单提交的三种方式(推荐)
Aug 10 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
jquery拖动改变div大小
Jul 04 jQuery
原生JS获取元素的位置与尺寸实现方法
Oct 18 Javascript
在vue中使用css modules替代scroped的方法
Mar 10 Javascript
解决element ui select下拉框不回显数据问题的解决
Feb 20 Javascript
微信小程序仿通讯录功能
Apr 09 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
YB217、YB235、YB400浅听
2021/03/02 无线电
mysql 搜索之简单应用
2007/04/27 PHP
简单的PHP图片上传程序
2008/03/27 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
ThinkPHP分页类使用详解
2014/03/05 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
基于jQuery的倒计时插件代码
2011/05/07 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
2020/05/09 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python不带重复的全排列代码
2013/08/13 Python
Python中字典的基础知识归纳小结
2015/08/19 Python
python的pip安装以及使用教程
2018/09/18 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
python操作日志的封装方法(两种方法)
2019/05/23 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
Europcar葡萄牙:葡萄牙汽车和货车租赁
2017/10/13 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
优秀信贷员先进事迹
2014/01/31 职场文书
车辆年检委托书范本
2014/10/14 职场文书
行政申诉状范文
2015/05/20 职场文书
行政处罚听证告知书
2015/07/01 职场文书
少儿励志名言(80句)
2019/08/14 职场文书