2012-07-18 31 views
2

我在我的谷歌关闭代码的函数使用事件侦听器,其目的是通过添加大豆模板生成对身体身体负荷时HTML:为什么我在Google Closure中编写的事件侦听器无法正常工作?

/** 
* 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); 

这后一种方法的工作,但根本不使用闭合,所以我不觉得它是可靠的。为什么我在Google Closure中编写的事件侦听器无法正常工作?

回答

0

您应该停止浏览器事件。

event.stopPropagation();

0

您应该将其附加到窗口对象。

goog.events.listenOnce(
    window 
, goog.events.EventType.LOAD 
, function(){ 
    window.alert('Ready for ADVANCED_COMPILATION!'); 
    } 
); 
相关问题