Ajax请求返回后IE9刷新

时间:2011-03-18 14:24:34

标签: asp.net ajax asp.net-ajax internet-explorer-9

我有一个JavaScript类,当Ajax请求发送到服务器时,在另一个div的内容之上显示部分不透明的div。

当请求返回时,JavaScript类隐藏了部分不透明的div ....它很有用......等等。

目前,在IE9中,当Ajax请求完成时,只有当用户移动鼠标时才会隐藏部分不透明度。

所以,我的问题是,如何强制浏览器执行它应该做的事情?

这是我在请求返回浏览器后调用的非常简单的函数:

_hideBlockingDiv: function() {
    if (this.get_blockingDivClientID()) {
        var blockingElement = $get(this.get_blockingDivClientID());

        if (blockingElement != null) {
            blockingElement.style.display = 'none';
            //I know that this method is executing correctly because I "hi" showed
            //up properly...but the element remained visible:
            blockingElement.innerHTML = 'hi';
        }
        //if I add the alert then everything works fine in IE9
        //if I don't then the page will remain the same until the user moves their mose
        //alert("done");



    }
}

请注意我没有使用JQuery。 我使用的是AJAX.NET库,因为我是一名.NET开发人员(在我实现启用Ajax的服务器控件之后的几年里,JQuery才开始流行)

由于

-Frinny

2 个答案:

答案 0 :(得分:0)

如何以及从何处调用_hideBlockingDiv函数?由于您使用的是MS Ajax库,因此您可能希望在客户端使用页面加载处理程序并从该处理程序中调用此函数。所以基本上

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(){
_hideBlockingDiv();
});

希望这有帮助!

答案 1 :(得分:0)

事实证明,问题只存在于我当时使用的IE9的beta版本中。一旦完整版IE9发布,这个问题就消失了。