注入的脚本无法访问 chrome.storage API

KaiJun

我正在编写一个 chrome 扩展,使用内容脚本来注入一些 javascript 代码。如下:

let actualCode = 'My Injected JS Code';
let script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);

对于注入的脚本,我想使用一些存储在 chrome.storage.sync 中的值。但是,我发现注入的脚本无法访问该 API(storage.sync 未定义)。API 只能在内容脚本中访问,而不能用于注入的脚本。任何想法我也可以访问注入脚本的 chrome.storage API 吗?

PS:我已经在 manifest.json 中注册了存储 API

PS:当我在 chrome 上打开开发人员的控制台并输入“chrome.storage”时,它也返回 undefined。我认为这可能是权限问题?

德利亚兹

您用于脚本的注入方式使其在无法访问大多数 Chrome 扩展 API 的网页环境中工作。

但是,有一个选项可以使用Messages API,它允许通过 ID 从网页向扩展程序发送请求。在这种情况下,您还需要在后台页面中实现一个侦听器,以响应此类请求。

PS chrome.storageAPI 也不应该在页面控制台中可用。您可能希望从后台页面控制台调试它或选择一个内容脚本环境(如果扩展程序有这样的环境):

在 devtools 中选择内容脚本环境

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章