我正在编写一个 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.storage
API 也不应该在页面控制台中可用。您可能希望从后台页面控制台调试它或选择一个内容脚本环境(如果扩展程序有这样的环境):
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句