2011-03-18 141 views
0

我有一個JavaScript類,當Ajax請求發送到服務器時,它會在另一個div的內容頂部顯示部分不透明div。Ajax請求返回後IE9刷新

當請求返回時,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開發(和JQuery並沒有成爲流行,直到幾年我實現我的支持Ajax的服務器控件後)

感謝

-Frinny

回答

0

事實證明,問題只存在於當時我正在使用的IE9的測試版本中。 IE9完整版發佈後,此問題就消失了。

0

如何以及從哪裏調用_hideBlockingDiv函數?由於您使用的是MS Ajax庫,因此您可能希望在客戶端擁有一個頁面加載處理程序,並從該處理程序中調用此函數。所以基本上

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

希望這有助於!

+0

感謝您的回覆。我已經在課上有這個了。我不想發佈整個課程,因爲它有很多代碼,沒有必要真正展示它。正如我之前所說的,該方法執行...我能夠將div的innerHTML設置爲「hi」並調用「alert」方法...但是樣式「display:none」只是在應用後才應用我移動我的鼠標。 – Frinavale 2011-03-18 14:52:50