1

是否有一种 JavaScript 方法来存储浏览器窗口独有的数据,这样如果用户打开了多个浏览器窗口(所有相同的浏览器,比如:Firefox),每个窗口都会有唯一的数据。...与所有窗口共享的 cookie 不同。

我的用户需要打开多个窗口到同一个 .html 页面,以查看动态嵌入数据。同时,每个窗口将动态显示来自不同嵌入式源的数据。

因此,我的 JavaScript 需要能够区分一个窗口和另一个窗口。

4

2 回答 2

2

我唯一能想到的就是设置 window.name ......我什至没有尝试过,但据我所知,它应该像 cookie 一样在页面导航中存活 - 我会在一秒钟内回来,要做一些测试...

--

似乎工作正常,我不确定 window.name 的最大长度是多少(编辑:2MB 跨浏览器,如果你不包括 Opera 则更多 - http://www.thomasfrank.se/sessionvars.html)。我发现的唯一一件事是在 Chrome 中,如果您访问另一个域,window.name 会丢失,但在其他浏览器中,该名称仍然存在,所以它是可行的,不是 100% 确定您应该依赖它在未来始终工作尽管。

存储每个窗口/选项卡状态的另一种方法是通过 URI,但在涉及导航的地方也可能会变得很棘手。我的意思是它需要有纪律地使用特定的导航机制来确保它不会意外丢失,并且它也会在你的用户的视野中。如果这是一个设计目标,那么它的好处是可以收藏/发送电子邮件等。

--

所有这些方法都将不适用于个人/敏感/关键数据,但对于易失性/瞬态视图状态,我看不到任何问题。

于 2012-07-03T20:23:23.900 回答
0

如果您将数据附加到各种窗口实例,每个窗口上下文将与其他窗口上下文不同。

var w = window.open('somepage.html');
window.foo = 'bar';
w.foo = 'baz';
于 2012-07-03T20:18:51.570 回答