简单实现兼容各大浏览器的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前台数据获取实现代码
Mar 16 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
Aug 22 Javascript
实测jquery data()如何存值
Aug 18 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
js跨域请求数据的3种常用的方法
Dec 01 Javascript
javascript作用域、作用域链(菜鸟必看)
Jun 16 Javascript
ionic开发中点击input时键盘自动弹出
Dec 23 Javascript
vue.js树形组件之删除双击增加分支实例代码
Feb 28 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
es6新特性之 class 基本用法解析
May 05 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
Apr 04 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
Oct 27 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
剖析 PHP 中的输出缓冲
2006/12/21 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP版本如何选择?应该使用哪个版本?
2015/05/13 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
JavaScript中常用的运算符小结
2012/01/18 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
2017/01/22 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
python实现的简单文本类游戏实例
2015/04/28 Python
深入理解Python3 内置函数大全
2017/11/23 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
经典c++面试题二
2015/08/14 面试题
小学三八妇女节活动方案
2014/03/16 职场文书
大学生村官承诺书
2014/03/28 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
入党后的感想
2015/08/10 职场文书
勤俭节约主题班会
2015/08/13 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL