以下代码如何在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