以下代碼如何在Javascript中編寫?我希望聲明一個可以在任何頁面中訪問的變量。我可能會在剃刀代碼中聲明一個變量,但我不知道如何將它寫入JavaScript中。有沒有可能在JavaScript中聲明這樣的變量?以下代碼如何在Javascript中編寫?
@{
App.VariableName = "some string values";
}
以下代碼如何在Javascript中編寫?我希望聲明一個可以在任何頁面中訪問的變量。我可能會在剃刀代碼中聲明一個變量,但我不知道如何將它寫入JavaScript中。有沒有可能在JavaScript中聲明這樣的變量?以下代碼如何在Javascript中編寫?
@{
App.VariableName = "some string values";
}
我要申報其可以在任何頁面被訪問的變量。
如果你的意思是,在你的網站/應用任何頁面,您可以使用web storage:本地存儲如果值應會話,或者如果沒有會話存儲之間存在下去。
如果你只是想存儲的字符串,這是簡單的:
// Setting the string, whenever you want to remember it
localStorage.variableName = "some string";
// Getting the string, probably on page load
var theString = localStorage.variableName;
// `theString` will be `null` if `variableName` didn't exist in storage
// for this site
這些僅限於字符串,所以人們通常將它們與JSON結合起來。在頁面加載:
var storedStuff = JSON.parse(localStorage.myStuff || "null") || {
// Default values here for when we don't have stored stuff yet
variableName: "some stuff"
};
然後,每當你改變storedStuff.variableName
(或當你想保存變更):
localStorage.myStuff = JSON.stringify(storedStuff);
對於會話存儲,而不是,只是改變localStorage
上面sessionStorage
。
成語
var storedStuff = JSON.parse(localStorage.myStuff || "null") || {
// Default values here for when we don't have stored stuff yet
variableName: "some stuff"
};
大概可以使用一些解釋:
如果我們試圖找回的東西,不存在於局部存儲器存在,我們回去null
。 JavaScript有一個curiously-powerful ||
operator:不是返回一個布爾值,而是返回左邊的參數,如果該參數是truthy,則返回左邊的參數,否則返回右邊的參數。所以localStorage.myStuff || "null"
將是本地存儲的字符串,或者如果不存在,則字符串爲"null"
。
然後,我們解析結果,它可以是我們先前存儲的序列化數組,也可以是字符串"null"
。儘管字符串"null"
不是有效的JSON文檔,但其是有效的JSON 片段和被記錄爲接受片段。所以解析的結果是我們以前存儲的數組,或者是null
。
然後我們再次使用功能強大的||
運算符來選擇反序列化的結果和一個帶有默認值的對象({...}
)。因此,如果我們反序列化null
,我們將選擇具有默認值的對象;如果我們反序列化一個對象,我們會選擇它。
我可以知道我該怎麼做?有沒有我可以參考的示例代碼?多謝! :) 我的意思是聲明一個變量,可以在我的網站/應用程序 – user3156931
thx ya!我想我必須花費一些時間來消化它:) – user3156931
@ user3156931:我添加了一個簡單的字符串示例,因爲你剛纔說你想要一個字符串。我有點去了與JSON的OTT ... :-) –
如果你的瀏覽器支持它,你可以使用的localStorage或sessionStorage的存儲頁面之間的變量 - 請參閱https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage的詳細信息和兼容性表。
可以用作這樣:你關閉瀏覽器後
localStorage["mydata"] = myvariable;
var dataFromStorage = localStorage["mydata"];
本地存儲將持續數據,會話存儲只會持續針對瀏覽器會話。
我可以知道如何訪問剃刀中的localStorage? – user3156931
你不能,而且這很容易,因爲沒有JavaScript中的狀態概念(在瀏覽器環境中) – adeneo
Cookie和本地存儲浮現在腦海 – mplungjan
你可以把它放在你包含在所有頁面上的腳本中。 – Peter