简单实现兼容各大浏览器的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 相关文章推荐
JQuery 遮罩层实现(mask)实现代码
Jan 09 Javascript
潜说js对象和数组
May 25 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
javascript作用域容易记错的两个地方分析
Jun 22 Javascript
jquery获取选中的文本和值的方法
Jul 08 Javascript
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
Vue 2.0在IE11中打开项目页面空白的问题解决
Jul 16 Javascript
vue项目中api接口管理总结
Apr 20 Javascript
vue 组件中添加样式不生效的解决方法
Jul 06 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 Javascript
JS实现头条新闻的经典轮播图效果示例
Jan 30 Javascript
详解微信小程序支付流程与梳理
Jul 16 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/10/09 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
浅谈vue路径优化之resolve
2017/10/13 Javascript
js实现登录与注册界面
2017/11/01 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
python删除特定文件的方法
2015/07/30 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
pandas 将索引值相加的方法
2018/11/15 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
Python 发送邮件方法总结
2020/08/10 Python
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
电子信息专业学生自荐信
2013/11/09 职场文书
大学四年职业生涯规划书范文
2014/01/02 职场文书
民间个人借款协议书
2014/09/30 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书