![](/img/trans.png)
[英]Assigning classes after page reload based on variable value in 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.