簡體   English   中英

頁面重新加載后在javascript中保存變量

[英]Save variable in javascript after page reload

我無法使這個工作,並在頁面刷新時保存變量。

在這里我正在使用。

window.onload = function () {

   if (localStorage.getItem("forg") === null) {
       localStorage.getItem("forg2");
      } else {
           localStorage.getItem("forg");
             }
      }

function forgot() {

    $('#pass_icon').removeClass("pass-icon");
    $('#forgot').replaceWith('<input class="login_register" id="forgot2" type="button" value="' + login + '" />');

}

function forgot2() {

    $('#pass_icon').addClass("pass-icon");
    $('#logintitle').html('<h1>' + login_form + '</h1>');
}

$(document).on('click', '#forgot', function () {
    forgot();
    localStorage.removeItem("forg2");
    localStorage.setItem("forg", forgot());
});
$(document).on('click', '#forgot2', function () {
    forgot2();
    localStorage.removeItem("forg");
    localStorage.setItem("forg2", forgot2());
});

此代碼不會保存,並且當頁面重新加載時,默認情況下會function forgot()

我想要的是當我點擊#forgot2然后當頁面刷新它將保持這個功能forgot2()

我不知道我在這里做錯了什么。

我有最新版本的firefox(27)。

這兩行代碼看起來像你的問題:

localStorage.setItem("forg", forgot());

localStorage.setItem("forg2", forgot2());

我不知道你要做什么,這兩行代碼正在做的是立即調用這兩個函數,然后嘗試將這些函數的返回結果放入localStorage。 由於這兩個函數都沒有返回值,因此您嘗試將undefined放入localStorage。 顯然,除了擦除之前LocalStorage中該項目的內容之外,這將無法實現任何有用的功能。

如果您要做的是將函數放在localStorage中,那么您無法做到這一點。 localStorage接受字符串。 您需要在那里存儲一個字符串,然后您可以在將來檢查該字符串,並根據您在localStorage中找到的字符串更改您的邏輯。

因此,例如,您可以在localStorage中存儲兩個字符串中的一個: "forgot""forgot2" "forgot" "forgot2" 然后,當您從localStorage檢索項時,可以使用if語句檢查以查看找到的字符串,然后根據if語句的結果執行不同的代碼。 首先,您可能只需要localStorage中的一個鍵,並且可以為該單個鍵使用不同的值。 以下是您如何閱讀它的想法:

var storageVal = localStorage.getItem("forg");
if (storageVal) {
    if (storageVal === "forget") {

       // code here for the "forget" state

    } else if storageVal === "forget2" {

        // code here for the "forget2" state

    }
}


$(document).on('click', '#forgot', function () {
    forgot();
    localStorage.setItem("forg", "forget");
});
$(document).on('click', '#forgot2', function () {
    forgot2();
    localStorage.setItem("forg", "forget2");
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM