浏览器是否跨选项卡传播 javascript 变量?

Jam*_*ber 1 javascript browser variables cross-browser

我有一些 JavaScript 将查看是否设置了 var,如果设置了,则执行某些操作,否则不执行。

if (reset === 'reset') {
    gallery.unformat(container);
}
Run Code Online (Sandbox Code Playgroud)

reset仅在页面加载后设置。所以这个脚本只会在用户重新加载页面后执行。

如果我在 Firefox 中打开一个新标签reset未设置。如果我在 chrome 中打开一个新标签reset设置。

因此,对于我的情况,chrome 会正确处理它,并且只有在第一次访问该站点时才会设置此 var,因此一切正常。

我想知道变量是否跨选项卡传播,如果是这样,哪些浏览器会做什么?

Mat*_*att 5

变量应该坚持跨越新的选项卡。我无法重现您在 Chrome 中看到的行为。

你应该考虑使用cookies,或者如果你想成为 HTML5,看看localStorage.

这两个都是特定于域的,而不是每个标签。

例如localStorage,你可以去;

// Check that localStorage is supported in the current browser, and then try
// to retrieve the item.
if ('localStorage' in window && localStorage.getItem('reset') === 'reset') {
    gallery.unformat(container);
}
Run Code Online (Sandbox Code Playgroud)

然后您可以reset稍后通过;

localStorage.setItem('reset', 'reset');
Run Code Online (Sandbox Code Playgroud)