<button id="button1">Click</button>そして、この<button>へのイベントのバインドを行なっているのが、app.onactivatedにバインドした関数定義の後に書かれている、以下の文です。
args.setPromise(WinJS.UI.processAll().then(function completed(){……}デフォルトでは、 args.setPromise(WinJS.UI.processAll()); という文が用意されていましたね。setPromiseは、起動に関する非同期処理が完了するまで起動の完了を遅延するものです。といっても意味がわかりませんね。要するに「全部の準備が整ったら完了の処理を呼び出すようにするもの」と考えてください。var button1 = document.getElementById("button1");
button1.addEventListener("click", doAction, false);getElementByIdで<button>タグのDOMオブジェクトを取得し、これの「addEventListener」でイベントのバインドを行なっています。これで起動時にイベントがバインドされ使えるようになります。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※default.htmlの<body>タグ
<body>
<p id="msg">Please type your name:</p>
<input type="text" id="text1" />
<button id="button1">Click</button>
</body>
※default.jsのコード
(function () {
"use strict";
WinJS.Binding.optimizeBindingReferences = true;
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.
ApplicationExecutionState.terminated) {} else {} // 処理なし
// ※追加した処理
args.setPromise(WinJS.UI.processAll().then(function completed() {
var button1 = document.getElementById("button1");
button1.addEventListener("click", doAction, false);
}));
}
}
app.oncheckpoint = function (args) {}; // 処理なし
// ※追加した関数
function doAction(event) {
var field = document.getElementById("text1");
var msg = document.getElementById("msg");
msg.textContent = "You type: " + field.value;
}
app.start();
})();
| << 前へ |