0

default.html内に次のページ要素があります。

<div id ="content">
   <div id="output"></div>
</div>

そしてdefault.js 内:

...     
args.setPromise(WinJS.UI.processAll().done(function()
{
   var theOutput = document.getElementById("output");
   theOutput.innerText = "This is the output";
}));
....

これにより、「This is the output」というテキストだけのアプリが正常に生成されます。

しかし、これを新しいスクリプトscript.js に移動すると:

(function ()
{
  "use strict";

  var theOutput = document.getElementById("output");
  theOutput.innerText = "This is the output";
}()); 

また、default.html にスクリプト参照として script.js を追加しました。

<script src="/js/script.js"></script><script src="/js/script.js"></script>

エラーが発生します

JavaScript ランタイム エラー: 未定義または null 参照のプロパティ 'innerText' を設定できません

default.js 以外の他のスクリプトで出力 div にアクセスするにはどうすればよいですか?

4

2 に答える 2

0

DOMが構築されると発生するDOMContentLoadedイベントを処理することもできます(ただし、イメージはまだ完全にロードされていない可能性があります)。これは、私のキャンバスベースのWindowsストアゲームの多くで行っていることです。

これをメイン関数に追加します。

document.addEventListener("DOMContentLoaded", initialize, false);

次に、初期化で起動するコードを実行します。

function initialize() {
    //Init Canvas
    canvas = document.getElementById("canvas");
    ctx = canvas.getContext("2d");
于 2012-10-03T14:59:40.113 に答える
0

結局のところ、script.jsはページ要素が完全に処理されるまで待つ必要がありました。次のコードは正常に実行されます。

(function ()
{
   "use strict";
   WinJS.Utilities.ready(function ()
   {
     var theOutput = document.getElementById("output");
     theOutput.innerText = "This is the output";
   });
}());
于 2012-09-30T15:36:24.283 に答える