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

Google chrome extension 注入的脚本无法访问chrome.storage API,google-chrome-extension,Google Chrome Extension,我正在编写一个chrome扩展,使用内容脚本注入一些javascript代码。详情如下: let actualCode = 'My Injected JS Code'; let script = document.createElement('script'); script.textContent = actualCode; (document.head||document.documentElement).appendChild(script); 对于注入的脚本,我想使用chrome.st

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

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

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

另外,chrome.storageAPI也不应在页面控制台中提供。您可能希望从后台页面控制台对其进行调试,或者选择内容脚本环境(如果扩展具有这样的环境):


访问内容脚本中的存储,然后使用DOM消息将其发送到注入脚本,如图所示。谢谢,这很有帮助!谢谢你的帮助!sendMessage API无法工作,因为我需要内容脚本上的侦听器,而onMessageExternal API无法在内容脚本上工作。关于这个问题,你有什么想法吗?@KaiJun第一个想法:你可以尝试使用民意测验技术,每毫秒询问一次新的更新。