使用clipboard.js复制页面内容到剪切板
最近在做一个的智能客服Web端浏览器应用,其中有一项需求是客户在获取系统返回的
答案后点击“复制答案”按钮将答案复制到系统剪切板。本以为这是一个小case,但是发现如果
要对各种主流浏览器都有良好的兼容性并不简单。原因在于出于安全原因,大多数现代浏览
器都未提供通用的剪贴板复制接口(或即便有,也默认被禁用)。
上网搜索了一下,现有的方案大致有两种:
一:使用原生javascript中window.clipboardData实现复制到剪贴板功能;
二:使用Zero Clipboard库;
在尝试了之后发现现有的方案都不能满足需求。
方案一仅仅支持ie浏览器,在firefox,chrome浏览器上则不起作用。
方案二则是现有绝大多数网站(包括github等)所采取的方案,ZeroClipboard是国外大神开发的一个
用于剪贴板复制的 JS 插件,它是基于 Flash 来实现跨浏览器的复制功能的。当我们使用 ZeroClipboard
的时候,它会悄悄隐藏一个小小的 Flash 影片(swf),不会对我们的用户界面造成影响。我们只需要借助
它实现复制功能就行了。
ZeroClipboard 中的 "Zero" 指的就是"不可见,零干扰"。
对此感兴趣的可以参考 http://my.oschina.net/shniu/blog/298406?p=1
但是在现代浏览器中,flash逐渐没落,firefox浏览器默认不开启flash,所以Zero Clipboard在
兼容方面也表现不佳。
那么,对于复制到剪切板这种简单的操作有没有一种实现简单,兼容性良好的解决方案呢?有的!那就是github
上的开源项目clipboard.js(官网:http://zenorocha.github.io/clipboard.js/) 官网对于clipboard.js的介绍
非常简单:
A modern approach to copy text to clipboard No Flash. No dependencies. Just 3kb gzipped
Copying text to the clipboard shouldn't be hard. It shouldn't require dozens of steps to configure
or hundreds of KBs to load. But most of all, it shouldn't depend on Flash or any bloated framework.
That's why clipboard.js exists.(拷贝文本到剪切板不应该复杂,它不应该需要许多步骤以及几百KB的文件,另
外,它不应该依靠flash以及其他框架,这就是clipboard存在的原因)
使用clipboard简单快捷,并且从官网下载下来的zip格式压缩包里有非常实用的demo,举一个简单的例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>target-div</title>
</head>
<body>
<!-- 1. Define some markup -->
<div>hello</div>
<button class="btn" data-clipboard-action="copy" data-clipboard-target="div">Copy</button> <!-- 2. Include library -->
<script src="../dist/clipboard.min.js"></script> <!-- 3. Instantiate clipboard -->
<script>
var clipboard = new Clipboard('.btn'); clipboard.on('success', function(e) {
console.log(e);
}); clipboard.on('error', function(e) {
console.log(e);
});
</script>
</body>
</html>
非常简单吧,我们只需下面四步:
1.引入clipboard.min.js文件
2.选择一个可以确定被拷贝元素的选择器,本例中使用用的是基本的标签选择器<div>,当然也可以使用id选择器 class选择器等等
3.定义一个button按钮,注意按钮的属性:
data-clipboard-action="copy" data-clipboard-target="div"
其中data-clipboard-target属性就是第二步你定义的选择器
4.书写js,建立clipboard对象以及复制后执行的方法
OK,这样功能就完成了,点击按钮后就会发现div的内容已经拷贝到剪切板了。

使用clipboard.js复制页面内容到剪切板的更多相关文章
- clipboard.js实现页面内容复制到剪贴板
clipboard.js实现复制内容到剪切板,它不依靠flash以及其他框架,应用起来比较简单 <input type="text" name="copy_txt& ...
- 使用ZeroClipboard 复制指定内容到剪切板
有些时候,我们希望让用户在网页上完成某个操作就能自动将指定的内容复制到用户计算机的剪贴板中.但是出于安全原因,大多数现代浏览器都未提供通用的剪贴板复制接口(或即便有,也默认被禁用).只有IE浏览器可以 ...
- 使用clipBoard.js进行页面内容复制
官方网址: https://clipboardjs.com/
- js实现复制文本内容到剪切板
function copyUrl() { var Url2=document.getElementById("url").innerText; var oInput = docum ...
- js+flash(as3)实现复制文字内容到剪切板实例
/* SWFObject v2.2 swfobject.js */ var swfobject=function(){var D="undefined",r="objec ...
- 一段js实现复制文本内容到剪切板
<script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...
- Shell——Linux/Mac 终端复制文件内容到剪切板
pbcopy < filename 如: pbcopy < README.md 效果如下: 说明:上图中 # gitskills 即README.md 中内容.
- js拷贝指定内容到剪切板
function copyTextToClipboard(text) { var textArea = document.createElement("textarea"); te ...
- windows 复制 文本文件内容 到剪切板
shell 打开 type filename | clip
随机推荐
- Maven Project configuration is not up-to-date with pom.xml错误解决方法
导入一个Maven项目之后发现有一个如下的错误: Project configuration is not up-to-date with pom.xml. Run project configura ...
- LA 4255 Guess
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...
- YTU 2616: A代码完善--简易二元运算
2616: A代码完善--简易二元运算 时间限制: 1 Sec 内存限制: 128 MB 提交: 280 解决: 187 题目描述 注:本题只需要提交填写部分的代码,请按照C++方式提交. 编写二 ...
- Back to Back Order Process
Steps involved involved in back to back order process in oracle apps 1. Enter Sales Order 2. Book Sa ...
- Effective STL 中文版(大全)
Effective STL 中文版(大全) 作者:winter 候捷说,对于STL,程序员有三个境界,开始是使用STL,然后是理解STL,最后是补充STL.Effective STL是一本非常好的书, ...
- JavaScript 高级篇之闭包、模拟类,继承(五)
本篇主要分享我对闭包的理解及使用闭包完成私有属性.模拟类.继承等,结合大量例子,希望大家能快速掌握!首先让我们先从一些基本的术语开始吧 一.javascript中的闭包 1.我们一起先来理解什 ...
- core--作业
线程被封装在进程中,进程能不能被封装? 当有多个进程协调一起来完成一项任务的时候,就使用"作业"来完成 作业将进程组合在一起,并创建一个"盒子"来限制进程能够做 ...
- 基于Flume的美团日志收集系统(一)架构和设计
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...
- 在view中常见的四种方法的使用场合
四种方法,使view创建好里面就有东西:[1.init 2.initWithFrame使用代码创建的时候.(从文件创建的时候不一定调用:1.init 2.initWithFrame这两个方法) 3 ...
- DOM对象常用对象的方法和属性
HTML文档中的常用节点类型: 接口 nodeType 备注 Element 1 元素节点 Text 3 文本节点 Document 9 Document Comment 8 注释文本 Docum ...