Um dos motivos que eu não gostava da existência de diferentes navegadores é que toda página que eu fazia precisava ser testada no Internet Explorer 6 e 7, Firefox, Opera, Mobile, etc… Cada um interpretava o html de um jeito e eu precisava que todos mostrassem a página de uma maneira “correta”.

Até ai tudo bem, são ossos do ofício.

Mas esses dias tive que efetuar uma alteração em um menu lateral que me tomaria 2 horas se eu editasse o código original, ou 1 dia todo se eu refizesse ele inteiro novamente (consulta ao MySQL, geração do PHP, etc…). Coisas de menus dinâmicos…

Obviamente optei por editar o código original, fazendo uma pequena gambiarra que consistia em “comentar” um “href” Quem faz html deve entender. Para quem é leigo, toda linguagem de programação tem uma “tag” (um trecho de programação) que serve para comentar o que você está fazendo (para você não se perder depois). No item 3.2.4 da W3C Recommendation – órgão que é responsável pela uniformização do HTML no mundo – indica que para você comentar alguma coisa dentro de um documento HTML você utiliza assim:

<!– Começo do código de exibição do menu–>

Ou seja, tudo que você escrever entre o “abre comentários” <!– e o “fecha comentários” –> não aparece na página.Para fazer um link você utiliza a tag “a href”. Ou seja, assim:

<a href=”http://www.jonnyken.com/infoblog”>Infoblog</a>

A minha gambiarra consistia em fazer o PHP colocar um link entre <!– e o –>, transformando-o em um comentário. O que era

<a href=”http://www.jonnyken.com/infoblog”>Infoblog</a>

viraria

<!– <a href=”http://www.jonnyken.com/infoblog”>Infoblog</a> –>

Ou seja, ao invés de ter um link, agora teria um comentário, e nada daquilo seria exibido no navegador.
Feliz da vida, terminei minhas 2 horas de trabalho nesse menu dinâmico e acabei não testando em outros navegadores (fiz visualizando no Firefox), já que a tag de comentário é mais usado que bicicleta na China, e “não deveria” apresentar problemas…

Pois é… Quando estava fazendo a verificação ortográfica do texto via Internet Explorer, eis que o Menu apareceu TODO BAGUNÇADO! Será que fiz besteira? Será que a programaçõa estava errada?

Que nada!!! Descobri que o Interent Explorer (vulgo IE) foge totalmente dos padrões de comentários da W3C. Para o IE, para fechar um comentário basta somente o > e não o –>. Para uma página normal isso não faz a menor diferença, mas para a meu menu dinâmico fazia, porque o navegador estava entendendo a página assim:

<!– <a href=”http://www.jonnyken.com/infoblog”>Infoblog</a> –>

Ou seja, em todos os itens do menu que estava comentado ele mostrava “–> ” no final e que bagunçava todo o menu.

Compre
Maça –>
Banana –>
Pera
Pêssego
Uva –>

Resumindo: Uma tag que está presente desde a 1a versão do HTML não é respeitada pelo Internet Explorer!!!

Ps1 – tive que refazer toda programação do menu dinâmico! Que Maravilha!!!

Ps2 – Será que dá para aproveitar esse bug para alguma coisa?