gpt4 book ai didi

JavaScript - 将大字符串复制到剪贴板

转载 作者:行者123 更新时间:2023-12-05 04:04:18 26 4
gpt4 key购买 nike

我正在开发一个网格,现在我正尝试将信息从网格复制到 Excel。一切正常,但如果数据太大,复制过程会花费很长时间。

我正在使用 textarea 技巧,使用“document.execCommand("copy")”。

我可以看到我的问题在这里“textarea.select();”将文本粘贴到文本区域非常快,但是选择所有文本需要很长时间。之后也可以快速发送到剪贴板。问题似乎出在选择上。

我说的是复制 [500000, 40] 这样的数组。大量数据。

我尝试了一些 Chrome API,但到最后找不到任何好的解决方案。有没有其他巧妙的方法可以将数据复制到剪贴板?

最佳答案

问题是数据处理所花费的时间比execCommand("copy")要长。

实际上,复制需要在用户生成的事件中调用,并且有一个时间限制(没有任何地方提到,但在我的工作中我发现它是 ~5 秒,欢迎任何关于此的规范)。如果您的数据处理需要的不止于此,则不会复制数据。一种解决方案是提前处理数据,然后打开对话框/弹出窗口要求用户单击按钮复制数据。

进一步快速复制(在 safari 中不起作用)您可以使用以下方法:

var contentToCopy;
function copyDataToClipboard(e) {
e.preventDefault(); // default behaviour is to copy any selected text
e.clipboardData.setData("text/plain", contentToCopy);
}
function copy(content) {
contentToCopy = content;
document.addEventListener("copy", copyDataToClipboard);
try {
document.execCommand("copy");
} catch (exception) {
console.error("Copy to clipboard failed");
} finally {
document.removeEventListener("copy", copyDataToClipboard);
}
}

copy(content = [Any content you would like to copy to clipboard]);

希望这能解决您与复制大数据相关的问题。

关于JavaScript - 将大字符串复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52785701/

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