js复制网页上的内容到剪切板
js复制网页上的内容到剪切板
2023-07-17 测试,原来的代码已经没用了,现用下面的代码,在firefox和edge上本地测试成功,放服务器上不成功,网上搜索说是服务器上的话要在https下才行的
function aaa() { var txt = $('#hfDesc').val(); navigator.clipboard.writeText(txt).then( () => { /* clipboard successfully set */ alert('复制成功'); }, () => { /* clipboard write failed */ alert('复制失败'); }, ); }
用clipboard.min.js,下载在 http://www.niunan.net/js/clipboard.min.js
<script src="/js/clipboard.min.js"></script> <script> function aaa() { var txt = $('#hfDesc').val(); var clipboard = new ClipboardJS('#btnCopy', { text: function (trigger) { return txt; } }); clipboard.on('success', function (e) { alert('复制成功'); }); } </script>
原来的代码:
function copyToClipboard(txt) { if (window.clipboardData) { window.clipboardData.clearData(); window.clipboardData.setData("Text", txt); alert("已成功复制文本."); } else if (navigator.userAgent.indexOf("Opera") != -1) { window.location = txt; } else if (window.netscape) { try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); } catch (e) { alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'"); } var clip = Components.classes['@@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); var str = new Object(); var len = new Object(); var str = Components.classes["@@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); var copytext = txt; str.data = copytext; trans.setTransferData("text/unicode", str, copytext.length * 2); var clipid = Components.interfaces.nsIClipboard; if (!clip) return false; clip.setData(trans, null, clipid.kGlobalClipboard); alert("已成功复制文本."); } }
撸码:复制、粘贴,拿起键盘就是“干”!!!