更改 HTML 页面时由 Javascript 函数重置的数组值重置

我的 javascript 中有一个空白数组,名为Counter. 当我运行该test()函数时,我希望它向数组添加一个值并更改 HTML 页面。但是在第二页中,如果 I console.log(Counter),它显示为空白。


如何在更改页面时向数组添加值同时维护它?


Javascript


var Counter = [];


function test() {

    Counter.push("1")

    window.location.replace("page2.html")

}


拉风的咖菲猫
浏览 106回答 5
5回答

翻过高山走不出你

创建一个新的文本文件并将您的 Counter 变量添加到其中......&nbsp;var&nbsp;Counter&nbsp;=&nbsp;[];...然后将文本文件重命名为 Shared.js现在将此行添加到所有需要此变量的 HTML 页面,在它们的 HEAD 部分...<script&nbsp;src="Shared.js"></script>所有页面现在应该能够共享这个数组以及您可能希望添加到 Shared.js 的任何其他变量。

MMTTMM

您还可以使用 sessionStorage。PageOne.html<html>&nbsp; &nbsp; <head>&nbsp; &nbsp; &nbsp; &nbsp; <title>Page One</title>&nbsp; &nbsp; </head>&nbsp; &nbsp; <body>&nbsp; &nbsp; &nbsp; &nbsp; <button onClick="test()">Click me!</button>&nbsp; &nbsp; &nbsp; &nbsp; <script>&nbsp; &nbsp; &nbsp; &nbsp; var Counter = [];&nbsp; &nbsp; &nbsp; &nbsp; function test() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Counter.push("1");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sessionStorage.setItem("counter", JSON.stringify(Counter));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.location.replace("PageTwo.html");&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; </script>&nbsp; &nbsp; </body></html>PageTwo.html<html>&nbsp; &nbsp; <head>&nbsp; &nbsp; </head>&nbsp; &nbsp; <body>&nbsp; &nbsp; &nbsp; &nbsp; <script>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var counter = sessionStorage.getItem("counter");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(counter);&nbsp; &nbsp; &nbsp; &nbsp; </script>&nbsp; &nbsp; </body></html>

动漫人物

试试这个:window.location.replace("page2.html?Counter=" + Counter)

ABOUTYOU

JavaScript 执行上下文仅限于单个页面。换句话说,当您离开该页面时,所有 JavaScript 变量都将丢失。一种解决方案是使用localStorage。LocalStorage允许您保存跨会话(同一域)持续存在的少量数据。您可以将字符串化数组保存到localStorage并在加载页面时将其取回。//Save array to localstoragewindow.localStorage.setItem('arr', JSON.stringify(arr));//Retreive item from localStoragearr = window.localstorage.getItem('arr');arr = JSON.parse(arr);还有其他解决方案,例如将字符串化数组值作为 ural 参数传递给下一页。但我想localStorage是少工作。

白衣非少年

刷新或转到其他网页时不会保存变量。如果要保存它们,可以尝试将它们保存在 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() {&nbsp; &nbsp; Counter.push("1")&nbsp; &nbsp; var CounterString = JSON.stringify(Counter);&nbsp; &nbsp; localStorage.setItem("Counter", CounterString);&nbsp; &nbsp; window.location.replace("page2.html")}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript