跨多个页面设置javascript全局变量[重复]

Posted

技术标签:

【中文标题】跨多个页面设置javascript全局变量[重复]【英文标题】:Set javascript global variables across multiple pages [duplicate] 【发布时间】:2014-06-22 00:09:01 【问题描述】:

我想将全局变量存储在 javascript 数组中,以使它们可用于多个页面。

我知道 cookie 或 localstorage 可以做类似的事情。但我想存储大量信息,因此如果我能找到一种将它们存储在 javascript 数组中的方法会更好。

例如在html 1个文件中

<head>
    <title>Global javascript example</title>
</head>
<body>
    <button type="button" onclick="global_var['a']['a']=1;"> a,a set to 1  </button>  
    <br/>                              
    <button type="button" onclick="global_var['a']['b']=1;"> a,b set to 1  </button>             
    <br/>                              
    <button type="button" onclick="alert(global_var['a']['b']);"> echo  a,b   </button>  
</body>

现在在另一个html文件或刷新后的同一页面中,我想访问全局变量:

<head>
    <title>Global javascript example</title>
</head>
<body>                            
    <button type="button" onclick="alert(global_var['a']['b']);"> echo a,b </button>               
</body>

除了使用 cookie 之外,还有其他方法可以实现吗?

【问题讨论】:

我认为只有框架,并将全局变量设置为“顶部” cookies、localstorage、iframe、ajax,任何在页面刷新期间保持数据的方法。 【参考方案1】:

简短的回答是:

localStorage.setItem("bar", foo);

然后:

var foo = localStorage.getItem("bar");

长答案是http://diveintohtml5.info/storage.html

【讨论】:

感谢您的信息。不支持html5的浏览器怎么办? 这就是服务器的用途。 @user2818066 浏览器低至 IE8 支持本地存储。如果你需要低于 IE8 - 你有问题。【参考方案2】:

可以将数组(或任何其他对象)存储到本地存储中。您只需要JSON.stringify 将任何对象(包括数组)转换为字符串以放入存储中,JSON.parse 将其从存储中检索后转换回对象。

这里是快速参考:http://samcroft.co.uk/2013/using-localstorage-to-store-json/

【讨论】:

【参考方案3】:

考虑使用 nicholas 提到的 localStorage,它可以根据浏览器的功能将您舒适的内存量(如 5MB)保持到无限。

如果您仍然不相信 cookie 或 localStorage 这些简单的方法,请尝试使用像 sessvarsJS 这样的库

详细教程和演示可以在Session variables without cookies找到

【讨论】:

非常酷的工具,是的!

以上是关于跨多个页面设置javascript全局变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中跨多个文件的全局变量

小程序设置全局变量,全局方法

使 PHP 变量跨多个网页成为全局变量

cookiejson详解

客户端存储cookie ---(优缺点及定义及用途)

跨页面保留javascript变量? [复制]