我正在将 Chrome 扩展程序移植到 Firefox。它具有粘贴到剪贴板的功能。但是,我还没有在 Firefox 中做到这一点。这是我在后台脚本中尝试执行的操作:
const input = document.createElement('textarea');
input.style.position = 'fixed';
input.style.opacity = 0;
input.value = text;
document.body.appendChild(input);
input.select();
document.execCommand('copy');
logger(text);
document.body.removeChild(input);
这在 Chrome 中运行良好。我有clipboardWrite
我的清单中的许可。有什么提示说明为什么它不能在 Firefox 上运行吗?
您正尝试从后台脚本执行此操作,但这是行不通的。 MDN 页面:“与剪贴板交互" in "特定于浏览器的注意事项” 对于 Firefox 来说:
您可以在所有执行上下文中像这样写入剪贴板除背景页外s。在 Firefox 中,您无法在后台页面中选择文本或将输入字段聚焦,因此您无法从后台页面写入剪贴板。
您需要在其他上下文中才能写入剪贴板。例如,您可以注入内容脚本,或者打开扩展程序中页面的选项卡或窗口。您选择如何执行此操作将取决于您的扩展程序已经拥有的附加权限(例如tabs
)、当前打开的选项卡(是否有任何打开的选项卡可供您注入脚本)以及您可以接受的视觉效果(例如,短暂打开您未激活的选项卡,这可能会或可能不会,用户可以感知)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)