很多人在做“复制到剪贴板”功能的时候,几乎都会搜索JS兼容方案解决,但JS兼容方案也都会出现一个问题:
“不那么兼容”。
比如在火狐中,会默认禁止用户对剪贴板的访问,js复制的时候直接弹出“您的firefox安全限制限制您进行剪贴板操作,请打开'about:config'将signed.applets.codebase_principal_support'设置为true'之后重试”。
话说用户会傻到去修改firfox的配置么?还不如直接CTRL+C来得直接。
ZeroClipboard 库提供了一种简单的方法,使用一个透明的swf和一个JavaScript接口将文本复制到剪贴板。“透明的”标志着该库是无形的,用户界面是完全由你决定。
该库完全兼容Flash Player 10,用户单击即可完成拷贝内容到剪贴板的操作。这都是通过漂浮在DOM元素之上的swf完成的。
<script type="text/javascript" src="ZeroClipboard.js"></script>
<html> <body> <textarea id="fe_text">Copy me!</textarea><br/> <button id="copy-button" data-clipboard-target="fe_text" title="点击复制内容">点击复制内容</button> <script src="ZeroClipboard.js"></script> </body> </html>
在complete回调函数中用
clip.setText(
"我要复制的内容"
);来设置内容
,或者在HTML文件中指定data-clipboard-text="我要复制的内容" ;属性来设置内容])var clip = new ZeroClipboard( document.getElementById("copy-button"), { moviePath: "/path/to/ZeroClipboard.swf" //swf文件地址,如果和html同目录则不用设置 } ); clip.on( 'load', function(client) { // alert( "swf文件加载完成" ); } ); clip.on( 'complete', function(client, args) { this.style.display = 'none'; // "this" is the element that was clicked alert("内容复制到了剪贴板: " + args.text ); } );