假设有一个函数为页面加载注册事件处理程序:
function onLoad(pageLoadedHandler) {
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedHandler)
}
事实证明,如果页面已经加载 pageLoadedHandler 将不会被调用。如果页面已经加载,我希望 onLoad 函数调用传递的事件处理程序,那么我们如何检查呢?
我们可以采用这样丑陋的方式:
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded( function () {
window.pageIsAlreadyLoaded = true;
} );
function onLoad(pageLoadedHandler) {
if(window.pageIsAlreadyLoaded){
pageLoadedHandler();
} else {
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoadedHandler);
}
}
只需要将此代码放入早期加载的JS文件中。但是应该有一个很好的方法来进行检查。