2

Google Closureコードに、本体が読み込まれたときに大豆テンプレートによって生成されたHTMLを本体に追加することを目的としたイベントリスナーを備えた関数があります。

/**
 * Constructs the home page.
 */
AppLoader.prototype.constructHomePage = function() {
  goog.events.listen(document.body, 'onload', function() {
      document.body.innerHTML = templates.home.main();});
}

(new AppLoader()).constructHomePage();

ただし、動作しません。Chromeコンソールもエラーを提供しません。私が試したのは、javascriptにネイティブなaddEventListener関数を使用する以下のコードです。

... class instantiation
/**
 * Constructs the home page.
 */
AppLoader.prototype.constructHomePage = function() {
  document.body.innerHTML = templates.home.main();
}

document.body.addEventListener('load', function() {
  (new AppLoader()).constructHomePage();
}, false);

この後者の方法は機能しますが、Closureをまったく使用しないため、信頼できるとは思いません。Google Closureで記述されたイベントリスナーが機能しないのはなぜですか?

4

3 に答える 3

0

window オブジェクトにアタッチする必要があります。

goog.events.listenOnce(
  window
, goog.events.EventType.LOAD
, function(){
    window.alert( 'Ready for ADVANCED_COMPILATION!' );
  }
);
于 2013-12-04T20:59:07.690 に答える
0

ブラウザ イベントを停止する必要があります。

event.stopPropagation();

于 2012-08-13T08:09:10.083 に答える