无法访问 Chrome 扩展清单 V3 中内容脚本中的存储

Jia*_*hou 7 google-chrome-extension chrome-extension-manifest-v3

我尝试访问chrome.storage.session内容脚本中存储的信息,但浏览器不断通知我“不允许从此上下文访问存储”,即使我启用了“存储”manifest.json

在后台脚本中获取一些数据后,我存储接收到的数据

chrome.storage.session.set({"data": data});
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试通过运行以下行在内容脚本中访问它时:

chrome.storage.session.get(["data"],function(data){console.log(data)})
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Uncaught TypeError: Cannot read properties of undefined (reading 'session')
Run Code Online (Sandbox Code Playgroud)

但是,当我在后台脚本中运行完全相同的命令时,我能够检索数据。

我还确保我在我的manifest.json. 为什么会发生这种情况?

非常感谢!

wOx*_*xOm 10

不允许从此上下文访问存储

正如文档所说, session默认情况下仅适用于受信任的上下文。

要在内容脚本中启用它,请从此类受信任的上下文中调用setAccessLevel,即在后台脚本或扩展页面(如操作弹出窗口或选项)中。

chrome.storage.session.setAccessLevel({ accessLevel: 'TRUSTED_AND_UNTRUSTED_CONTEXTS' });
Run Code Online (Sandbox Code Playgroud)

无法读取未定义的属性(读取“会话”)

此错误表明 的父级session未定义,即chrome.storage未定义,这种情况仅发生在以下情况下: