加载项及其弹出式浏览器 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 方法应该可行。
我正在使用 JavaScript API 构建一个 Excel 插件。
加载项可以通过
弹出浏览器 windowpopup = 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 方法应该可行。