2017-08-10 93 views
0

我正在将我的Chrome扩展程序移植到Firefox。它有一个粘贴到剪贴板功能。但是,我还没有在Firefox中这样做过运气。这是我在后台脚本中试图做的事情:从Firefox中的后台脚本复制文本到剪贴板WebExtension

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?

+0

请将[问题]置于主题上:包括一个重复出现问题的[mcve]。对于Chrome扩展程序或Firefox WebExtensions,这通常意味着包含您的* manifest.json *以及一些背景,内容和/或弹出式脚本/ HTML。寻求调试帮助的问题(“为什么代码不按我想要的方式工作?”)必须包括:(1)期望的行为,(2)特定问题或错误,以及(3)重现它所需的最短代码*在问题本身*。另请参阅:[我可以在这里询问什么主题?](http://stackoverflow.com/help/on-topic)和[问]。 – Makyen

回答

1

您正试图从后台脚本执行此操作,这不起作用。该MDN页:“Interact with the clipboard”在“Browser-specific considerations”说,为Firefox:

你可以写在所有执行这样的剪贴板上下文除了背景页秒。在Firefox中,您无法选择文本或将背景页面中的输入字段关注,因此无法从背景页面写入剪贴板。

您需要在其他上下文中写入剪贴板。例如,您可以注入一个内容脚本,或打开一个选项卡或窗口到您的扩展中的页面。您如何选择这样做取决于您对扩展程序已拥有的附加权限(例如tabs),当前打开的选项卡(是否打开了任何可打开脚本的选项卡)以及可接受的视觉影响你(例如,简单地打开一个你不激活的标签,这对用户来说可能是或者可能不是)。

+0

非常感谢提示和是啊,它与内容脚本很好地工作。再次感谢 – Achayan

相关问题