我想在.js文件中使用全局变量。 例如,如何在Windows8商店应用程序的Javascript/HTML5中设置全局变量
,当我读“a.js + a.html”文件的内容,并保存到某个变量“fileContent”
然后我也想使用“fileContent”在“B .js + b.html“。
(也,当我在 “b.js + b.html” 改变 'fileContent',这应该不会影响 'fileContent' 在 “a.js + a.html”)
我应该怎么办?
谢谢。
我想在.js文件中使用全局变量。 例如,如何在Windows8商店应用程序的Javascript/HTML5中设置全局变量
,当我读“a.js + a.html”文件的内容,并保存到某个变量“fileContent”
然后我也想使用“fileContent”在“B .js + b.html“。
(也,当我在 “b.js + b.html” 改变 'fileContent',这应该不会影响 'fileContent' 在 “a.js + a.html”)
我应该怎么办?
谢谢。
鉴于Windows 8应用程序的体系结构是单页模型,您不浏览浏览器,但仅加载HTML片段并将其插入当前文档中,这很容易。但是,我会推荐使用一些打字,而不仅仅是一个“裸”的全局变量。
文件A(globals.js):
WinJS.Namespace.define("MyGlobals", {
variableA: null,
});
在default.html中的顶部的WinJS包括后包括此。
文件B(b.js):
// your other code
...
MyGlobals.variableA = getValueFromSomewhere();
文件C(b.html,或c。JS):
// your other code
...
printSomethingAwesomeFromData(MyGlobals.variableA);
我有一些问题。我其实喜欢那个代码。但是,variableA的值不能在c.js中使用我的目标是创建一个WinJS.binding.list();变量,可以在b.js和c.js中共享我的代码如下: – klados
[global.js]在default.html中包含“ - > WinJS.Namespace.define(”MyGlobals“,{ varA:null,}); – klados
[b.js] MyGlobals.varA = new WinJS.binding.list();和MyGlobal.varA.push({title:varTitle,desc:varDesc}); – klados
使用localStorage。
在答:
localStorage.setItem('fileContent', 'value;');
在B:
var fileContent = localStorage.getItem('fileContent');
或者只是访问localStorage
像任何其他对象:
localStorage.fileContent = "value";
但是,请记住,localStorage
将所有值字符串,这包括对象和数组。要设置/获得这些,你需要使用JSON.stringify
和JSON.parse,分别为:
localStorage.setItem('fileContent', JSON.stringify([1,2,3,4,5,6,7]));
var fileContent = JSON.parse(localStorage.getItem('fileContent'));
您还可以使用应用程序设置:
var applicationData = Windows.Storage.ApplicationData.current;
var localSettings = applicationData.localSettings;
var composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";
localSettings.values["exampleCompositeSetting"] = composite;
在这里你可以找到更多的信息:Link
你可以很容易地定义一个变量,可以使用它作为一个全局变量,例如
WinJS.Namespace.define("MyGlobals", {i: 0,k:5 })
为了检查你可以添加一个事件监听器就像
div1.addEventListener('click', divClickEvent);
function divClickEvent() {
MyGlobals.i++;
MyGlobals.k++;
console.log("ValueOf_i____" + MyGlobals.i);
console.log("ValueOf_k____" + MyGlobals.k);
}
IM不确定关于Windows 8 - 但你可以使用localStorage或sessionStorage这样的东西在javascript –