Bug no Interne Explorer (struts + javascript)

15 respostas
skekeu

Galera, boa noite,

Estou com certa dificuldade num código aqui.
Estou usando struts, tenho um form que faz upload e ao clicar em enviar eu exibo uma div que contem um gif … no firefox funciona legal, mas no ie o gif aparece estatico.

Percebi q esse “bug” some se eu não der submit no form …
Segue o codigo:

<div style="display:none" id="carregando">  
                      
                        <img src="images/loader.gif"/>               
                        
                    </div>
document.getElementById('carregando').style.display = "block";
document.getElementById('botao').disabled = true;
document.getElementById('res').disabled = true;
window.scrollTo(500,500);
document.getElementById('form').submit();

O q pode ser???

15 Respostas

skekeu

Fiz um exemplo pra vcs verem

http://skekeu.s43.eatj.com/uploadStruts/

luciano2

A imagem está sendo exibida, substitua sua função main por:

document.getElementById("frame").style.display='block'; setTimeout(null,3000); document.getElementById("f").submit();

skekeu

amigão … ta me retornando “argumento invalido” na linha referente ao submit

coloquei assim:

document.getElementById('carregando').style.display = "block";
window.scrollTo(500,500);
document.getElementById('botao').disabled = true;
document.getElementById('res').disabled = true;
setTimeout(null,3000);
document.getElementById('form').submit();
luciano2

Não deve existir nenhum form com o id “form”

Man instale o firebug no seu Firefox, isso vai te quebrar um galhão.

skekeu

luciano@@:
Não deve existir nenhum form com o id “form”

Man instale o firebug no seu Firefox, isso vai te quebrar um galhão.

O id do meu form é “form” sim …
Se eu tiro o setTimeout(null,3000); funciona, mas com o gif estatico no ie …

o sistema ta todo pronto, só falta isso :lol: :lol: :lol: parece sacanagem cara …

luciano2

Cara aqui não dá esse erro, mas tente isso para ver se funciona.

setTimeout(document.getElementById('form').submit() ,3000);
skekeu

nada…
ta brabo aqui … :cry: :cry:

Com as opções dadas funciona normal no firefox … mas no ie nada … :evil:

luciano2

Mas qual é o erro que ta dando agora?

skekeu

Vamos lá …
Vou passar cada config e cada erro/bug

document.getElementById('carregando').style.display = "block";
window.scrollTo(500,500);
document.getElementById('botao').disabled = true;
document.getElementById('res').disabled = true;
document.getElementById('form').submit();

IE: A aplicação funciona, mas o gif fica estatico
FF: A aplicação funciona normalmente

document.getElementById('carregando').style.display = "block";
window.scrollTo(500,500);
document.getElementById('botao').disabled = true;
document.getElementById('res').disabled = true;
setTimeout(null,3000);
document.getElementById('form').submit();

IE: O gif fica animado, mas da o erro: Argumento Inválido na linha do submit do form
FF: A Aplicação funciona normalmente

document.getElementById('carregando').style.display = "block";
window.scrollTo(500,500);
document.getElementById('botao').disabled = true;
document.getElementById('res').disabled = true;
setTimeout(document.getElementById('form').submit(),3000);    
document.getElementById('form').submit();

mesma coisa q o 1º

luciano2

muda sua função javaScript para essas

function enviar(){
    document.getElementById("frame").style.display='block'; 
    setTimeout("main();",200);
} 

function main(){
    document.getElementById("f").submit();
}

Testei aqui e funcionou no IE

skekeu

agora o gif funciona no ie, mas só pelo tempo do setTimeout … quando vem o submit trava o gif
:lol: :lol: :lol: :lol:

to quase desistindo :cry: :cry:

skekeu

acho q consegui resolver com jquery …
pelo menos num exemplo q fiz agora funcionou

quando testar amanhã posto aqui

luciano2

É logico que o gif só vai ser exibido no tempo do setTimeout, acho q o IE trava tudo quando dá o submit, você teria que fazer um submit assincrono para o browser não travar.

Se consegiu resolver com jQuery posta aqui, quero ver como ficou.

skekeu

putz … no exemplo q fiz uns posts acima consegui fazer funcionar, mas no projeto não vai nem f*******

pelo q li hj na net, esse problema é antigo.
Existem modos pra contornar, mas nem sempre funcionam em determidado projeto …

testei alguns exemplos q achei aqui, mas ainda não foi:

skekeu

UFA!!!
Após um bom tempo pesquisando consegui fazer funcionar no ie … :smiley: :smiley: :smiley: :smiley:

Fiz como mostrado nesse link e funcionou de boa aqui
http://codebetter.com/blogs/brendan.tompkins/archive/2004/02/25/A-Simple-Web-Progress-Bar_2E00__2E00__2E00_.aspx

Cara muito obrigado pela ajuda ae…

Criado 4 de maio de 2010
Ultima resposta 6 de mai. de 2010
Respostas 15
Participantes 2