繁体   English   中英

如何在Windows8应用商店中的Javascript / HTML5中设置全局变量

[英]How to set global variables in Javascript/HTML5 in Windows8 store app

我想在.js文件中使用全局变量。 例如,

当我在“ a.js + a.html”中读取文件内容并保存到某个变量“ fileContent”中时

那么我也想在“ b.js + b.html”中使用该“ fileContent”。

(此外,当我更改“ b.js + b.html”中的“ fileContent”时,这应该会影响“ a.js + a.html”中的“ fileContent”)

我该怎么办?

谢谢。

鉴于Windows 8应用程序的体系结构是单页模型,您无需在浏览器中导航,而仅加载HTML片段并将其插入当前文档中,因此这非常容易。 但是,我建议使用某些类型的输入,而不是仅使用“裸”全局变量。

文件A(globals.js):

WinJS.Namespace.define("MyGlobals",  {
    variableA: null,
});

包括WinJS之后,将其包括在default.html的顶部。

文件B(b.js):

// your other code
...
MyGlobals.variableA = getValueFromSomewhere();

文件C(b.html或c.js):

// your other code
...
printSomethingAwesomeFromData(MyGlobals.variableA);

您还可以使用“应用程序设置”:

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;

在这里您可以找到更多信息: 链接

您可以轻松定义一个变量并将其用作全局变量,例如

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);
    }

使用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'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM