繁体   English   中英

在页面之间同步 JavaScript 变量

[英]Sync a JavaScript variable between pages

我一直在寻找一种方法来访问 another.html 文件中的变量。 例如:文件 1 (HTML)

<!--some code-->
<script>
var x; //this should equal the variable in the other file.
</script>

文件 2 (HTML)

<!--some code-->
<script>
var y = 0;
</script>

我怎么能做到? (我可以将文件 2 的代码移动到一个单独的 .js 文件中。

将变量存储在 localStorage 中会更好。

一页设置key

localStorage.setItem('key', value);

从另一个检索值

localStorage.getItem('key')

另一种方法是使用cookies

为此,您可以使用所有现代浏览器都支持的localStorage

请注意, localStorage.setItem()将对您尝试存储的还不是字符串的所有内容执行.toString() 最好使用JSON.stringify()JSON.parse()来设置和检索所有内容。 字符串本身可能不需要这样做,但总是这样做并没有太大的伤害。

我经常使用辅助函数来使其更容易使用,如下所示:

function storeObject(key, x) {
  localStorage.setItem(key, JSON.stringify(x));
}

function retrieveObject(key) {
  return JSON.parse(localStorage.getItem(key));
}

storeObject("test", { a: 2, b: 3 } );

const obj = retrieveObject("test")
console.dir(obj.a); // prints 2
console.dir(obj.b); // prints 3

PS 我没有创建堆栈片段,因为片段不允许使用 localStorage。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM