gpt4 book ai didi

javascript - Firefox webextension 不复制到剪贴板

转载 作者:行者123 更新时间:2023-11-30 11:42:32 31 4
gpt4 key购买 nike

我有一个 Firefox 网络扩展,它应该生成将链接复制到剪贴板的按钮。在我的插件内容脚本中,我有:

    button.onclick = function() {
var link = window.location.href.replace(/#[0-9a-zA-Z_]+$/, '') + '#' + id;
var txtToCopy = document.createElement('input');
txtToCopy.value = link;
txtToCopy.select();

console.log(txtToCopy.value);
var res = document.execCommand('copy');
console.log(res);

}

如您所见,我用它记录了我尝试复制的值,以及从 execCommand 返回的结果。两者都是我所期望的。

“https://thing.example.com#12345”

但是,它似乎并没有真正将文本复制到剪贴板。根据 MDN,我不需要任何额外的权限,因为它是在事件中发生的,execCommand 的响应让我觉得一切都已按需设置。

我在启用 e10s 的 Ubuntu 16.04、Firefox 51.0.1 上运行。也许e10s是我的问题,会提供更新。

最佳答案

您必须将 txtToCopy 附加到 DOM 才能从中复制,并且它必须是“可见的”(或多或少)。

button.onclick = function() {
var link = window.location.href.replace(/#[0-9a-zA-Z_]+$/, '') + '#' + id;
var txtToCopy = document.createElement('input');
txtToCopy.style.left = '-300px';
txtToCopy.style.position = 'absolute';
txtToCopy.value = link;
document.body.appendChild(txtToCopy);
txtToCopy.select();

console.log(txtToCopy.value);
var res = document.execCommand('copy');
console.log(res);

txtToCopy.parentNode.removeChild(txtToCopy);

}

关于javascript - Firefox webextension 不复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096042/

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