25th set 2009

O POG nosso de cada dia #15

Faz tempo que não faço um post sobre POGs: não que eles não estejam aocntecendo mais, mas é uma mistura de falta de tempo com complexidade absurda que os POGs têm alcançado ultimamente por aqui :-/

Mas, para não deixar essa categoria passada, vou resgatar um post que fiz nO Desenvolvedor no final do ano passado

O problema

Já ouviu falar em image flickering?

Até semana passada o final do ano passado, eu não. Mas certamente, assim como eu, você já viu acontecer: links com imagem de fundo que, quando você passa o mouse por cima, perdem o background. No lixo do IE6.
Eu não sabia que tinha um nome bonito. Por exemplo, essa classe CSS aqui daria problema:

.someClassName {
background:#AABBCC url(someBackGroundImage.gif) repeat-x;
}

Pelo que entendi do assunto, essa é uma questão relacionada a como o browser (não que o IE6 seja um browser, mas vamos lá…) faz cache das imagens.

Existem várias soluções para esse problema – sim, é um problema ao meu ver, e não uma propriedade do browser. De uma googlada e veja que há várias técnicas.

Uma delas seria não usar imagens de background em links. Outra, colocar uma div (ou algum outro elemento) em volta do link e usar background nela.

FAIL para ambos.

Mudar a sua marcação html por causa do IE6 não faz sentido; é um browser antigo, que não segue padrão algum, que vem caindo em desuso.

O POG

Existe um fix para isso que funciona bem em qualquer IE6.
Dentro do head do seu html, coloque o javascript:

<script type=”text/javascript”>
try {
document.execCommand(“BackgroundImageCache”, false, true);
} catch(err) {}
</script>

Esse script tenta fazer com que o browser use as imagens salvas no cache da máquina.
Funciona belezinha, está testado, homologado e em produção há meses, numa boa.

Posts relacionados

Avalie

1 estrela2 estrelas3 estrelas4 estrelas5 estrelas (2 votes, average: 5,00 out of 5)

5 Responses to “O POG nosso de cada dia #15”

  1. Herbert says with Firefox on Mac Os X 10.5

    Belo post. Não entendo lhufas dos códigos que escreveu, mas foi tão bem escrito que não me senti burro, hahaha. Mas sério, interessante. Eu só não riscaria o “lixo do” em referência ao IE6. Abs!

  2. Hard says with Opera on Linux

    Eu charia isso de artificio hehe

  3. Hard says with Opera on Linux

    Chamaria*

  4. Acelio F says with Firefox on Windows XP

    Grande!
    Este era um dos motivos de eu não usar isto. BG em links.

    ¿ este script afeta o funcionamento dos navegadores normais, ou só o IE ?

  5. Chris says with Firefox on Mac Os X 10.5

    Afeta só o IE, Acelio, porque ele roda um executável do OS que só afeta a engine do IE.

    Um cara aqui do trampo falou que tem como resolver isso numa configuração do webserver… vou ver se consigo mais infos. e posto aqui.

Leave a Reply