将文本复制到剪贴板的最佳方法是什么?(多浏览器)
我试过了:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
但在Internet Explorer中,它会出现语法错误.在Firefox中,它说unsafeWindow is not defined.
没有闪存的好技巧:Trello如何访问用户的剪贴板?
工作流程很简单:
你怎么做呢?
我试图在不使用Flash的情况下复制到剪贴板,如果浏览器与javascript方法不兼容,我计划使用ZeroClipboard重新使用Flash .
我有一个按钮的onClick监听器,看起来像:
$(buttonWhereActionWillBeTriggered).click(function(){
var copyDiv = document.getElementById(inputContainingTextToBeCopied);
copyDiv.focus();
document.execCommand('SelectAll');
document.execCommand("Copy", false, null);
}
Run Code Online (Sandbox Code Playgroud)
和输入字段如下:
<input type="text" name="Element To Be Copied" id="inputContainingTextToBeCopied" value="foo"/>
Run Code Online (Sandbox Code Playgroud)
这当前按预期工作,但设计要求包含要复制的文本的字段是不可见的.我尝试了两种设置type="hidden",style="display: none"但都没有成功.两者都导致按钮选择整个页面并将整个内容复制到用户的剪贴板.
我相对确信原因不是基于浏览器而只是因为我在Mac OS X 10.10.4上测试Chrome(版本43.0.2357.134(64位)).
有没有一种方法可以保持<input>在隐藏时可见的功能?或者如果不是我可以采取的替代路线?
我知道类似的问题,没有一个能解决我的问题,要么是因为太老了,要么实际上没有使用Javascript或者不适合特定的场景.对于任何有类似,不太具体的问题的人来说,这是一个很好的答案.