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

Injected script unable to access chrome.storage API

我正在编写 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”时,它 returns 也是未定义的。我认为这可能是权限问题?

您用于脚本的注入方式使其在无法访问大多数 Chrome 扩展 API.

的网页环境中运行

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

P.S。 chrome.storage API 也不应该从页面控制台可用。您可能想从后台页面控制台或 select 内容脚本环境(如果扩展有这样的)调试它: