亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更改 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 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號