gpt4 book ai didi

javascript - 现在 execCommand ("copy") 已过时,将文本复制到剪贴板

转载 作者:行者123 更新时间:2023-12-01 15:04:09 33 4
gpt4 key购买 nike

我刚刚在 Mozilla 页面上看到 execCommand() 已过时 https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand

“此功能已过时。虽然它可能在某些浏览器中仍然有效,但不鼓励使用它,因为它可能随时被删除。尽量避免使用它。”

这是我目前用来在用户单击“复制文本”按钮时将文本复制到用户剪贴板的方法。还有另一种方法吗?

 var input = // input element with the text
input.focus();
input.setSelectionRange(0,99999);
document.execCommand("copy");
input.blur();

编辑:这个 How do I copy to the clipboard in JavaScript?不回答问题。它提出了相同的过时解决方案。

最佳答案

从克莱康对这个问题的评论。替代品是剪贴板 API。它并非在所有浏览器中都实现,但在大多数浏览器中都实现。

https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API

// In this example, the text to copy would be in an element with id = textcopy

var text_to_copy = document.getElementById("textcopy").innerHTML;

if (!navigator.clipboard){
// use old commandExec() way
} else{
navigator.clipboard.writeText(text_to_copy).then(
function(){
alert("yeah!"); // success
})
.catch(
function() {
alert("err"); // error
});
}

对于某些浏览器(如 Firefox),这仅在由用户操作启动时才有效。因此,例如,将代码放在按钮监听器中。

我在 (Windows) Chrome、Firefox、new Edge、Opera、iOS Safari、iOS Chrome、iOS 应用程序 webview 中测试了这个(2020 年 2 月)。剪贴板 writeText 效果很好。

关于javascript - 现在 execCommand ("copy") 已过时,将文本复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60217202/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com