gpt4 book ai didi

google-chrome - 如何在 Chrome 扩展程序中使用 navigator.clipboard.readText()?

转载 作者:行者123 更新时间:2023-12-05 05:12:39 25 4
gpt4 key购买 nike

我写了一个读取剪贴板的 Firefox 扩展,如果它有一些 PEM 证书,它会在新选项卡中打印它的详细信息。我正在尝试移植到 Chrome。这是行不通的。我做错了什么?

我在 manifest.json 中请求了 clipboardRead,我在后台脚本中运行它,它在 Firefox 中运行良好。

 navigator.clipboard.readText().then(function (textFromClipboard) {
//do stuff with textFromClipboard
});

这在 Chrome 中失败,显示“无法在‘剪贴板’上执行‘readText’:非法调用”。我究竟做错了什么?我怎样才能使它在 Chrome 中也能工作?大多数答案涉及创建输入、获取焦点、执行粘贴。这真的很复杂,我希望我不必这样做。它在 Firefox 中运行得非常好,为什么在 Chrome 中它很复杂?

最佳答案

您可以使用 @bumble/clipboard .它是一个用于模拟剪贴板 API 的 Chrome 扩展的 npm 库。

它不需要用户交互,并且在后台脚本中运行。它只需要 clipboardReadclipboardWrite 权限。

import { clipboard } from '@bumble/clipboard'

// Read text from the clipboard, or "paste"
clipboard.readText()
.then((text) => {
console.log('clipboard contents', text)
})

// Write text to the clipboard, or "copy"
clipboard.writeText('write this to the clipboard')
.then((text) => {
console.log(text, 'was written to the clipboard')
})

披露:我为自己编写了这个库来解决@ddreian 提到的相同问题。它是一种基于 Promise 的非阻塞解决方案,在后台使用 document.execCommand

关于google-chrome - 如何在 Chrome 扩展程序中使用 navigator.clipboard.readText()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386279/

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