我写了一个Firefox扩展,读取剪贴板,如果它有一些PEM证书,它会在一个新的标签打印它的细节。我正在尝试移植到Chrome。它不起作用。我做错了什么?
我在manifest.json中请求clipboardRead,然后在后台脚本中运行它,它在Firefox中运行得很好。
navigator.clipboard.readText().then(function (textFromClipboard) {
//do stuff with textFromClipboard
});
这在Chrome中失败,并显示“Failed to execute 'readText' on 'Clipboard':非法调用”。我做错了什么?我如何在Chrome中也能做到这一点?大多数答案涉及创建输入、获取焦点、执行粘贴。这真的很复杂,我希望我不必这样做。它在Firefox中运行得很好,为什么在Chrome中很复杂?
2条答案
按热度按时间1mrurvl11#
可以使用
@bumble/clipboard
。它是一个用于Chrome扩展的npm库,可以模拟Clipboard API。它不需要用户交互,并且在后台脚本中工作。它只需要
clipboardRead
或clipboardWrite
权限。document.execCommand
。nom7f22z2#
在代码(popup.js)中添加:
不要忘记manifest中的权限: