注入的脚本无法访问 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 内容脚本环境(如果扩展有这样的)调试它:
我正在编写 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
中注册了存储 APIPS:当我在 chrome 上打开开发者控制台并输入“chrome.storage”时,它 returns 也是未定义的。我认为这可能是权限问题?
您用于脚本的注入方式使其在无法访问大多数 Chrome 扩展 API.
的网页环境中运行但是,有一个选项可以使用 Messages API,它允许通过 ID 从网页向扩展程序发送请求。 在这种情况下,您还需要在后台页面中实现一个监听器,以响应此类请求。
P.S。 chrome.storage
API 也不应该从页面控制台可用。您可能想从后台页面控制台或 select 内容脚本环境(如果扩展有这样的)调试它: