如何将正文中的文本内容复制到剪贴板
How to copy text contents in body to clipboard
我需要将正文中的所有文本复制到剪贴板,
这是我到目前为止尝试过的:
- 选择文本节点,然后选择命令
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 文档中读到,出于安全原因,复制命令被禁用。知道如何解决这个问题吗?
复制到剪贴板仅适用于真正的用户交互。如果没有真正的用户交互,它通常会失败。我相信这是为了安全措施。
所以把它挂在点击事件上。然后我还建议你使用像 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 );
});
}
}
我需要将正文中的所有文本复制到剪贴板, 这是我到目前为止尝试过的:
- 选择文本节点,然后选择命令
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 文档中读到,出于安全原因,复制命令被禁用。知道如何解决这个问题吗?
复制到剪贴板仅适用于真正的用户交互。如果没有真正的用户交互,它通常会失败。我相信这是为了安全措施。 所以把它挂在点击事件上。然后我还建议你使用像 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 );
});
}
}