IE6 bugado
Estive fazendo algumas implementações em Java Script. Nada fora do comum. Coisas do dia-a-dia. Sempre testo os projetos no Firefox, IE6, IE7 e Opera, garantir a qualidade, vocês sabem.
Quebrei a cabeça num bugzinho, porém terrível. Parece até um vírus, uma praga mesmo!
A grosso modo, meu objetivo era alterar um src de uma imagem dinamicamente (para aqueles que já mexem a anos, já devem estar desconfiando) através de JS. Firefox ok, IE7 ok, Opera ok, IE6 ok…mas então, onde está o problema?
Joguei o projeto na web e fui testar novamente, incrível, no IE6 parou de funcionar (a imagem nova não aparecia, somente clicando com botão direito e selecionar “Mostrar imagem”. Ou seja, quando localhost, funcionou normal, mas quando web não! Tentei então fazer um pre-loader em JS assim que carregasse o projeto (web), fui testar, ainda correto para todos, menos para o IE6.
Então fui tentar passar um alert() e ter certeza do que estava acontecendo. E para minha surpresa, a imagem nova apareceu APÓS o alert(). Bug?? “imagina, engano meu…”: CLARO que sim!
Claro que eu não ia fazer um alert() só para a imagem funcionar no IE6, nada prático…então fui pesquisar.
Então, o bug não estava na tag img e nem no JS, a praga estava no link (imagem) que ativava (através do onclick) uma função JS. Veja como estava:
<a href="javascript:;" onclick="selecionaIcone('icone3.png');"><img border="0" src="img/icones/icone3.png" /></a>
Caso resolvido assim:
<a onclick="selecionaIcone('icone3.png');"><img border="0" src="img/icones/icone3.png" /></a>
Explicando: retirei o href=”javascript:;” e no CSS adicionei a seguinte linha: cursor:pointer; para ficar com a “mãozinha” no mousehover.
Existem várias maneiras de se fazer carregar uma função JS, mas meu objetivo aqui é mostrar o belíssimo BUG do IE6. Ainda bem que foi resolvido no 7.
Abraços a todos,
Daniel Accorsi.
Sem Comentários





