加载项及其弹出式浏览器 window 是否共享同一个 localStorage?

Do add-in and its popup browser window share a same localStorage?

我正在使用 JavaScript API 构建一个 Excel 插件。

加载项可以通过

弹出浏览器 window
popup = window.open("https://localhost:3000/#/new", "popup", "status=1, location=1, width=1000, height=1200");

我已经测试过加载项和弹出浏览器 window 可以通过 postMessage 进行通信。

然而,他们似乎并不共享相同的 localStorage。例如,如果我在网页中设置 localStorage.setItem("item", "content"),在加载项中设置 localStorage.getItem("item") returns null.

有谁知道加载项和弹出式浏览器 window 是否共享同一个 localStorage?

PS:我测试过一个加载项本身可以在localStorage中设置一个项目并获取值。此外,网页可以在 localStorage 中设置和获取项目,即使它们可能在同一浏览器 window 中。

他们没有(在办公室 Windows)。他们运行在不同的信任模式下,做cookies,localStorage等共享。

如果您需要类似弹出窗口的场景,这就是 DialogAPI 的用途。

如果您在 asp.net 工作,我想您可以使用 SignalR 之类的东西在两者之间进行通信。如果您在像节点这样的不同环境中工作,那么标准的 websocket 方法应该可行。