简单实现兼容各大浏览器的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 相关文章推荐
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 Javascript
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
Sep 01 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
node.js 动态执行脚本
Jun 02 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 Javascript
详解jquery easyui之datagrid使用参考
Dec 05 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
Node.js的特点详解
Feb 03 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
Jul 28 Javascript
JavaScript内置对象之Array的使用小结
May 12 Javascript
多种类型jQuery网页验证码插件代码实例
Jan 09 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数组去重复数据示例
2014/02/25 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
JavaScript 10件让人费解的事情
2010/02/15 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
2015/11/26 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
2015/12/02 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
基于jQuery中ajax的相关方法汇总(必看篇)
2017/11/08 jQuery
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
python实现人人网登录示例分享
2014/01/19 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
详解rem 适配布局
2018/10/31 HTML / CSS
会计求职信范文
2014/05/24 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
课内比教学心得体会
2014/09/09 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
装配出错检讨书
2014/09/23 职场文书
2014年党小组工作总结
2014/12/20 职场文书
水电施工员岗位职责
2015/04/11 职场文书
冬季作息时间调整通知
2015/04/24 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
德劲DE1108畅想
2021/04/22 无线电