5 回答
TA贡献1875条经验 获得超3个赞
创建一个新的文本文件并将您的 Counter 变量添加到其中......
var Counter = [];
...然后将文本文件重命名为 Shared.js
现在将此行添加到所有需要此变量的 HTML 页面,在它们的 HEAD 部分...
<script src="Shared.js"></script>
所有页面现在应该能够共享这个数组以及您可能希望添加到 Shared.js 的任何其他变量。
TA贡献1869条经验 获得超4个赞
您还可以使用 sessionStorage。
PageOne.html
<html>
<head>
<title>Page One</title>
</head>
<body>
<button onClick="test()">Click me!</button>
<script>
var Counter = [];
function test() {
Counter.push("1");
sessionStorage.setItem("counter", JSON.stringify(Counter));
window.location.replace("PageTwo.html");
}
</script>
</body>
</html>
PageTwo.html
<html>
<head>
</head>
<body>
<script>
var counter = sessionStorage.getItem("counter");
console.log(counter);
</script>
</body>
</html>
TA贡献1812条经验 获得超5个赞
JavaScript 执行上下文仅限于单个页面。换句话说,当您离开该页面时,所有 JavaScript 变量都将丢失。
一种解决方案是使用localStorage。
LocalStorage允许您保存跨会话(同一域)持续存在的少量数据。您可以将字符串化数组保存到localStorage并在加载页面时将其取回。
//Save array to localstorage
window.localStorage.setItem('arr', JSON.stringify(arr));
//Retreive item from localStorage
arr = window.localstorage.getItem('arr');
arr = JSON.parse(arr);
还有其他解决方案,例如将字符串化数组值作为 ural 参数传递给下一页。但我想localStorage是少工作。
TA贡献1155条经验 获得超0个赞
刷新或转到其他网页时不会保存变量。如果要保存它们,可以尝试将它们保存在 Cookies 中,或者更简单的解决方案HTML5 Storage。
首先,使用 JSON 将变量转换为字符串:var CounterString = JSON.stringify(Counter);
然后,将字符串保存在 HTML5 存储中:localStorage.setItem("Counter", CounterString);
之后,无论您想在何处访问计数器,只需使用:(Counter = JSON.parse(localStorage.getItem("Counter"));它获取计数器字符串并将其解析回 JavaScript 对象。
完整代码:
var Counter = JSON.parse(localStorage.getItem("Counter"));
function test() {
Counter.push("1")
var CounterString = JSON.stringify(Counter);
localStorage.setItem("Counter", CounterString);
window.location.replace("page2.html")
}
添加回答
举报