Ajax请求返回后IE9刷新
问题描述:
我有一个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
答
事实证明,问题只存在于当时我正在使用的IE9的测试版本中。 IE9完整版发布后,此问题就消失了。
答
如何以及从哪里调用_hideBlockingDiv函数?由于您使用的是MS Ajax库,因此您可能希望在客户端拥有一个页面加载处理程序,并从该处理程序中调用此函数。所以基本上
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(){
_hideBlockingDiv();
});
希望这有助于!
感谢您的回复。我已经在课上有这个了。我不想发布整个课程,因为它有很多代码,没有必要真正展示它。正如我之前所说的,该方法执行...我能够将div的innerHTML设置为“hi”并调用“alert”方法...但是样式“display:none”只是在应用后才应用我移动我的鼠标。 – Frinavale 2011-03-18 14:52:50