Eu tenho uma classe JavaScript que exibe uma div parcialmente opaca sobre o conteúdo de outra div quando uma solicitação do Ajax é enviada ao servidor.
Quando a solicitação retorna, a classe JavaScript oculta a div parcialmente opaca .... funciona muito bem ... mais ou menos.
No momento, no IE9, quando a solicitação do Ajax é concluída, a opacidade parcial fica oculta apenas se o usuário mover o mouse.
Então, minha pergunta é: como forço o navegador a fazer o que deveria?
Esta é a minha função extremamente simples que é chamada após a solicitação retornar ao navegador:
_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");
}
}
Observe que não estou usando o JQuery. Estou usando a biblioteca AJAX.NET desde que sou desenvolvedor .NET (e o JQuery não se tornou popular até anos depois de implementar meus controles de servidor habilitados para Ajax)
obrigado
-Finze
Respostas:
0 para resposta № 1Como e onde você chama o _hideBlockingDivfunção de? Como você está usando a biblioteca MS Ajax, convém ter um manipulador carregado de página no lado do cliente e chamar essa função de dentro desse manipulador. Então, basicamente
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function(){
_hideBlockingDiv();
});
Espero que isto ajude!
0 para resposta № 2
Acontece que o problema existe apenas na versão beta do IE9 que eu estava usando no momento. Esse problema desapareceu assim que a versão completa do IE9 foi lançada.