.js ファイルでグローバル変数を使用したい。例えば、
「a.js + a.html」でファイルコンテンツを読み取り、特定の変数「fileContent」に保存すると
次に、「b.js + b.html」でその「fileContent」も使用したいと思います。
(また、「b.js + b.html」の「fileContent」を変更すると、「a.js + a.html」の「fileContent」に影響するはずです)
私は何をすべきか?
ありがとうございました。
.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);
変数を簡単に定義して、グローバル変数として使用できます。たとえば、
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);
}
アプリ設定も使用できます。
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;
ここで詳細情報を見つけることができます:リンク
localStorage を使用します。
A:
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'));