为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

拉风的咖菲猫 2022-12-29 13:46:10
我的 javascript 中有一个空白数组,名为Counter. 当我运行该test()函数时,我希望它向数组添加一个值并更改 HTML 页面。但是在第二页中,如果 I console.log(Counter),它显示为空白。如何在更改页面时向数组添加值同时维护它?Javascriptvar Counter = [];function test() {    Counter.push("1")    window.location.replace("page2.html")}
查看完整描述

5 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

创建一个新的文本文件并将您的 Counter 变量添加到其中......

 var Counter = [];

...然后将文本文件重命名为 Shared.js

现在将此行添加到所有需要此变量的 HTML 页面,在它们的 HEAD 部分...

<script src="Shared.js"></script>

所有页面现在应该能够共享这个数组以及您可能希望添加到 Shared.js 的任何其他变量。


查看完整回答
反对 回复 2022-12-29
?
MMTTMM

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>


查看完整回答
反对 回复 2022-12-29
?
动漫人物

TA贡献1815条经验 获得超10个赞

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



查看完整回答
反对 回复 2022-12-29
?
ABOUTYOU

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是少工作。


查看完整回答
反对 回复 2022-12-29
?
白衣非少年

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")

}


查看完整回答
反对 回复 2022-12-29
  • 5 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信