ZeroClipboard 是国外大神开发的一个用于剪贴板复制的 JS 插件,它是基于 Flash 来实现跨浏览器的复制功能的。当我们使用 ZeroClipboard 的时候,它会悄悄隐藏一个小小的 Flash 影片(swf),不会对我们的用户界面造成影响。我们只需要借助它实现复制功能就行了。
一个简单例子:
<html> <body> <button data-clipboard-text="Copy Me!" title="Click to copy me.">Copy to Clipboard</button> <script src="https://www.jb51.net/~/Scripts/jquery-1.7.1.js"></script> <script src="https://www.jb51.net/~/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("复制成功"); }); client.on('aftercopy', function (event) { //复制之后的操作,如果不是自动在本页面粘贴,请把此事件备注掉 console.log('Copied text to clipboard: ' + event.data['text/plain']); }); }); client.on('error', function (event) { //出错的时候该干嘛 // console.log( 'ZeroClipboard error of type "' + event.name + '": ' + event.message ); ZeroClipboard.destroy(); }); </script> </html>
2.2版本需要引用jquery,要习惯把js代码写到页面底部,经测试,发现此代码不支持IE10/11,以下提供兼容IE的function,替换js部分即可
<script> $(function() { var text="取文本"; var msg="复制成功"; clipboard("btn_copy",text,msg); }); //参数说明 //button:按钮id //text:要复制的文本 //msg:复制成功提示文本 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>
最后,需要注意的是不要在本地调度,你会发现不会生效,因为Flash的安全限制
zeroclipboard源码:https://github.com/zeroclipboard/zeroclipboard
zeroclipboard官网:zeroclipboard.org
您可能感兴趣的文章: