炫意html5
最早CSS3和HTML5移动技术网站之一

用纯JavaScript实现“复制到剪贴板”功能

“复制到剪贴板”是我们日常工作中最常用到的一种操作,几乎每天都有使用很多次,但JavaScript客户端API对这个功能只提供了非常有限的支持,有些老的API和老式的浏览器在你复制时会弹出讨厌的“你真的要这样做吗?”类似的确认框,非常不方便,不友好。在几年前我曾有一篇文章里谈论过用ZeroClipboard实现JavaScript剪贴板操作,虽然是可以实现,但有一个弊端,它使用的是flash技术,而如今,很多浏览器开始不支持flash技术,所以,我们需要不依赖flash技术的JavaScript方法来实现浏览器端的剪贴板操作。今天给大家介绍的就是用纯JavaScript实现的解决方案:clipboard.js。

这个clipboard.js 里提供的“复制的剪贴板”API非常的简洁方便,下面就是它的一些用法:

用JavaScript拷贝、剪贴Textarea和Input里的数据

/* Textarea - Cut
<textarea id="bar">hello</textarea>
<button class="copy-button" data-clipboard-action="cut" data-clipboard-target="#bar">Cut</button>
*/
var clipboard = new Clipboard('.copy-button');
/* Input - Copy
<input id="foo" value="hello" type="text">
<button class="copy-button" data-clipboard-action="copy" data-clipboard-target="#foo">Copy</button>
*/
var clipboard = new Clipboard('.copy-button');

拷贝元素的innerHTML内容

/* HTMLElement - Copy
<div id="copy-target">hello</div>
<button class="copy-button" data-clipboard-action="copy" data-clipboard-target="#copy-target">Copy</button>
*/
var clipboard = new Clipboard('.copy-button');

TargetText的用法

// Contents of an element
var clipboard = new Clipboard('.copy-button', {
target: function() {
return document.querySelector('#copy-target');
}
});
// A specific string
var clipboard = new Clipboard('.copy-button', {
text: function() {
return 'clipboard.js is awesome!';
}
});

事件关联

var clipboard = new Clipboard('.btn');
clipboard.on('success', function(e) {
console.log(e);
});
clipboard.on('error', function(e) {
console.log(e);
});

演示

不依赖flash,API非常简单,所有的主流浏览器都支持 clipboard.js。Flash已死,WEB新技术长存!

炫意HTML5 » 用纯JavaScript实现“复制到剪贴板”功能

CSS3教程HTML5教程