我需要将正文中的所有文本复制到剪贴板,这是我迄今为止尝试过的:
- 选择文本节点,然后选择命令
document.execCommand("copy")
-
选择文本节点,然后使用键盘调度器:
$("body").contents().filter(function(){return this.nodeType === 3;}).select(); document.body.dispatchEvent(new KeyboardEvent("keyup", {bubbles: true, cancelable: false, key: "C", char: "C", ctrlKey: true}));
没有弹出错误。我在Chromium文档中读到,由于安全原因,copy命令被禁用。知道怎么绕过这个吗?
复制到剪贴板只适用于真正的用户交互。如果没有真正的用户交互,它通常会失败。我相信这是为了安全措施。所以把它挂在一个点击事件上。然后我还建议你使用像clipboard.js这样的库,它可以解决不同浏览器的问题,并允许你放入html变体和纯文本副本。
如果你使用clipboard.js,你可以使用这样的代码:
plaintext = "boo";
htmltext = "<strong>boo</strong>";
document.getElementById("copybutton").addEventListener('click', function() {
clipboard.copy({
'text/plain': plaintext,
'text/html': htmltext
}).then(
function(){
swal({
title: "Successfully copied",
text: "The thing has been put in your clipboard, happy pasting!",
type: "success",
closeOnConfirm:true,
confirmButtonText: "Ok",
timer: 1200
});
},
function(err){
window.prompt("Something went wrong with automatically copying the data to clipboard.nPlease press CTRC + C to copy the data",plaintext );
});
}
}