Agora eu realmente odeio o IE. Será que é um Bug?
<< Post Anterior Promoção Imperdível da VIVO: Celular com 0,25% de desconto |
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?
Veja também
19 Comentários
Jonny Ken Itaya, 32 anos, diretor de tecnologia da Kingo Labs, criador do Migre.me
e do Podpods, além de ex-biólogo. Trabalha há 12 anos com informática,
principalmente na área de edição de fotos, animações
flash, administração de rede e programação PHP. Atualmente
participa do Decodificando, podcast que fala de aplicação de leis
sobre as novas tecnologias (informática e biologia). 









Olá, tudo bem?
Acho o seu blog muito legal, está de parabéns! Também tenho um blog ( http://www.inexistentman.net ) e gostaria de propor uma parceria, como por exemplo troca de banners ou troca de links.
Aguardo resposta!
Rodrigo.
Responder
Aê Jonny, perdeu 1 Dia e mais 2 horas por causa do IEca é phoda!
Por isso que amo Fx!
Responder
Ainda bem que eu sai dessa vida enquanto ainda era tempo u.u eu já me ferrava para fazer as coisas não mto complexas em HTML.
Responder
Off Topic:
Fala Jonny, acabas de ser convidado para o Meme do Livro, faça o melhor, e que a força esteja com você.
um abraço
Responder
Uma pequena dúvida estudantil Jonny: esse bug é do IE 6 ou IE 7 (ou ambos)?
Responder
Julix…
O IE que eu testei é o 7. Mas vou testar no IE 6 em casa e ai eu te aviso…
Responder
Em se tratando de Microsfot é sempre bom ficar com o pé atrás. Trabalho também com programação para a web e entendo bem o que você esta passou (passa) no dia a dia. Bem vindo ao Clube
Responder
Claro que serve, pra mostrar que o IE não segue nenhum padrão, assim como todos os programas da MS.
Use software Livre
(pode classificar como spam, sem problema hehehehehe)
Responder
Mais uma do IE 6.0, agora ele decidiu interpretar o CSS da maneira que melhor lhe convém… isso é ótimo, todos os sites que acesso estão como se tivessem sido visualizado no bloco de notas.
Responder
Colega,
Tente fechar o comentario com “–>” ao invés de “->”, funciona até no IECA !!
Abraço, legal teu blog.
Mauricio
Responder
Porque não colocou ?
Responder
ola José
Como eu disse no texto, para não reescrever o programa inteiro eu precisava achar um jeito de comentar, só que um funcionava no IE e outro não…
mas eu reescrevi e ai tudo ficou 100%
Responder
Me desculpe lhe informar… mas seu código está errado.
O fechamento correto são duas barras mais o sinais de maior e menos
Para abertura
Sem os espaços entre os mesmos
Confirme na especificação e você verá!!!
Responder
Como a mensagem não ficou com os caracteres estou tentando novamente:
<!--
seu comentario
-->
Responder
Olá claudio…
Eu estou falando de html… para comentar é menor exclamação “2 hifens” e fecha com “2 hífens” Maior.
tem o link das recomendações W3C…
Em programação normalmente são usadas 2 barras para comentar, mas não é o caso do HTML…
mas de qualquer jeito o texto de coma está errado pq o wordpress transforma 2 hífens em um…
Abraços, e obrigado pela visita!!!
Responder
Eu sei!
Com certeza me expressei mal… heheh
mas espero que tenha entendido!
E não tinha considerado essas “inconsistências” do wordpress…
Falows
Responder
Recomendações W3C
http://www.w3.org/TR/1999/REC-html401-19991224/intro/sgmltut.html#h-3.2.4
Abraço!
O Jonny está fazendo da maneira correta só a porcaria do IE6 que já deveria ter morrido… Isso é uma peste! hehehe
Responder
Eu não sei para quê resolvir tentar ser desenvolvedor para web, me arrependo de esta desenvolvendo para web, tudo graças ao IEca 6, 7, 8.
Mas depois de terminar este trabalho vou voltar a desenvolver em Java/C++ feliz da vida.
Cara nem em Assembly tenho tanta dor de cabeça, e olha que Assembly é chatinho pra caramba já que é linguagem de máquina.
Responder
Correção Assembly é uma linguagem montadora (ou baixo nível), não uma linguagem de máquina.
Responder