gpt4 book ai didi

javascript - execCommand ('copy' ) 在 OS X 上的 Chrome 上失败

转载 作者:行者123 更新时间:2023-12-02 14:51:02 24 4
gpt4 key购买 nike

考虑以下jsfiddle用户可以单击包含粗体文本的 div,然后进行复制(ctrl+c win cmd+c mac)以将 html 作为 HTML 复制到剪贴板。如果您随后粘贴到 Gmail 等中,您将获得 html 格式。

基本上,“copyHtmlToClipboard”函数创建一个隐藏的 div,将 html 复制到其中,使用 document.createRange 选择它,然后调用 document.execCommand('copy')

function copyHtmlToClipboard(html) {
var div = document.createElement("div");
div.style.opacity = 0;
div.style.position = "absolute";
div.style.pointerEvents = "none";
div.style.zIndex = -1;
div.setAttribute('tabindex', '-1'); // so it can be focused
div.innerHTML = html;
document.body.appendChild(div);

var focused=document.activeElement;
div.focus();

window.getSelection().removeAllRanges();
var range = document.createRange();
// not using range.selectNode(div) as that makes chrome add an extra <br>
range.setStartBefore(div.firstChild);
range.setEndAfter(div.lastChild);
//range.selectNode(div);
window.getSelection().addRange(range);

var ok=false;
try {
ok = document.execCommand('copy');
} catch (err) {
console.log(err);
}
if (!ok) console.log('execCommand failed!');

window.getSelection().removeAllRanges();
document.body.removeChild(div);

focused.focus();
}

在 Windows Chrome/Firefox 上,这可以正常工作。

但是在 Mac Chrome 上,execCommand 返回 false。

如何让这段代码在 Mac 上运行?

谢谢!

最佳答案

Safari 不支持复制剪切 命令。

Source

关于javascript - execCommand ('copy' ) 在 OS X 上的 Chrome 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196248/

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