将文本复制到剪贴板(多浏览器)的最佳方法是什么?
我努力了:
function copyToClipboard(text) { if (window.clipboardData) { // Internet Explorer window.clipboardData.setData("Text", text); } else { unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); clipboardHelper.copyString(text); } }
但在 Internet Explorer 中,它给出了语法错误。在 Firefox 中,它说unsafeWindow is not defined。
自动复制到剪贴板可能很危险,因此大多数浏览器(Internet Explorer 除外)都使其变得非常困难。就个人而言,我使用以下简单技巧:
function copyToClipboard(text) { window.prompt("Copy to clipboard: Ctrl+C, Enter", text); }
向用户呈现提示框,其中已选择要复制的文本。现在按下Ctrl+C和Enter(关闭框)就足够了——瞧!
现在剪贴板复制操作是安全的,因为用户手动进行(但以一种非常简单的方式)。当然,它适用于所有浏览器。
<button id="demo" onclick="copyToClipboard(document.getElementById('demo').innerHTML)">This is what I want to copy</button> <script> function copyToClipboard(text) { window.prompt("Copy to clipboard: Ctrl+C, Enter", text); } </script>