小编nor*_*ing的帖子

在 Chrome 扩展 V3 中复制到剪贴板

我正在开发一个 chrome 扩展 V3。我想将 JS 文件中的内容复制到剪贴板。
Manifest.json 如下,

    "background" :{
        "service_worker" :"eventPage.js"
    },
    "permissions" : [
        "contextMenus",
        "clipboardWrite"      
    ]
Run Code Online (Sandbox Code Playgroud)

我尝试了 2 个复制功能的解决方案。

解决方案一:

    const el = document.createElement('textarea');
    el.value = str;
    el.setAttribute('readonly', '');
    el.style.position = 'absolute';
    el.style.left = '-9999px';
    document.body.appendChild(el);
    el.select();
    document.execCommand('copy');
    document.body.removeChild(el);
  
Run Code Online (Sandbox Code Playgroud)

结果:

Error in event handler: ReferenceError: document is not defined at copyToClipboard 
Run Code Online (Sandbox Code Playgroud)

解决方案2:

navigator.clipboard.writeText(str);
Run Code Online (Sandbox Code Playgroud)

结果:

Error in event handler: TypeError: Cannot read properties of undefined (reading 'writeText')
Run Code Online (Sandbox Code Playgroud)

Chrome 扩展作为 Service Worker 运行。所以看来我无法访问 DOM 文档并且没有授予 writeText 权限。还有人有其他建议吗?

谢谢。

javascript copy-paste google-chrome-extension

7
推荐指数
1
解决办法
8311
查看次数