javascript:检查PageRequestManager pageLoad是否已经触发

时间:2016-04-18 20:56:05

标签: javascript asp.net ajax

假设有一个函数为页面加载注册事件处理程序:

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文件中。但是应该有一个很好的方法来进行检查。

0 个答案:

没有答案