ZeroClipboard 是國外大神開發(fā)的一個(gè)用于剪貼板復(fù)制的 JS 插件,它是基于 Flash 來實(shí)現(xiàn)跨瀏覽器的復(fù)制功能的。當(dāng)我們使用 ZeroClipboard 的時(shí)候,它會(huì)悄悄隱藏一個(gè)小小的 Flash 影片(swf),不會(huì)對(duì)我們的用戶界面造成影響。我們只需要借助它實(shí)現(xiàn)復(fù)制功能就行了。
一個(gè)簡單例子:
<html>
<body>
<button id="copy-button" data-clipboard-text="Copy Me!" title="Click to copy me.">Copy to Clipboard</button>
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/ZeroClipboard.js"></script>
</body>
<script>
var client = new ZeroClipboard( $("#copy-button") );
client.on('ready', function (event) {
client.on('copy', function (event) {
event.clipboardData.setData('text/plain', event.target.innerHTML);
alert("復(fù)制成功");
});
client.on('aftercopy', function (event) {
//復(fù)制之后的操作,如果不是自動(dòng)在本頁面粘貼,請(qǐng)把此事件備注掉
console.log('Copied text to clipboard: ' + event.data['text/plain']);
});
});
client.on('error', function (event) {
//出錯(cuò)的時(shí)候該干嘛
// console.log( 'ZeroClipboard error of type "' + event.name + '": ' + event.message );
ZeroClipboard.destroy();
});
</script>
</html>
2.2版本需要引用jquery,要習(xí)慣把js代碼寫到頁面底部,經(jīng)測(cè)試,發(fā)現(xiàn)此代碼不支持IE10/11,以下提供兼容IE的function,替換js部分即可
<script>
$(function() {
var text="取文本";
var msg="復(fù)制成功";
clipboard("btn_copy",text,msg);
});
//參數(shù)說明
//button:按鈕id
//text:要復(fù)制的文本
//msg:復(fù)制成功提示文本
function clipboard(button,text,msg) {
if (window.clipboardData) { //for ie
var copyBtn = document.getElementById(button);
copyBtn.onclick = function () {
window.clipboardData.setData('text', text);
alert(msg);
}
} else {
var client = new ZeroClipboard($("#" + button));
client.on('ready', function (event) {
client.on('copy', function (event) {
event.clipboardData.setData("text/plain", text);
alert(msg);
});
});
client.on('error', function (event) {
ZeroClipboard.destroy();
});
}
return false;
}
</script>
最后,需要注意的是不要在本地調(diào)度,你會(huì)發(fā)現(xiàn)不會(huì)生效,因?yàn)镕lash的安全限制