在多个页面中设置javascript全局变量

时间:2014-05-05 15:54:28

标签: javascript jquery html global-variables persistent-storage

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

我知道cookies或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之外,还有什么办法可以实现吗?

3 个答案:

答案 0 :(得分:19)

简短的回答是:

localStorage.setItem("bar", foo);

然后:

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

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

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

如果您仍然不相信使用cookies或localStorage这些直接的方法,请尝试使用sessvarsJS

等库

详细教程&amp;演示可以在Session variables without cookies

找到