Busca

fim de expediente

by rafa soares

Tag

firefox

Internet Explorer 6 FML (ah, vá!)

Antes de mais nada, para os desentendidos: FML = Fuck My Life. Preciso explicar mais? Não? Ótimo, continuemos.

Algumas estatísticas dizem que o IE6 ainda corresponde a 18% dos acessos, mas a verdade é: 105% dos clientes de um web designer/developer ainda usam essa velharia e se recusam a sequer pensar em atualizar. FATO.

Não só com relação ao IE, mas a maioria das empresas faz questão de se manter uma ou duas gerações atrás em tudo.

Pois bem, essa é a história:

Peguei um projeto para fazer, nada muito grande, mas uns dias depois de enviar o projeto para o cliente recebo um PPT com as “observações” (odeio quando mandam em PPT. Por que não manda direto no email? Dá até para por imagens, pô!). Eis que dentre elas está: “ajustar layout do menu”. A primeira coisa que eu vejo é: Win XP + IE6. FML.

Olha só como era para ser, e como está:

IE7

Aqui está tudo lindo, no lugar.
Aqui está tudo lindo, no lugar.

 

IE6

Já aqui... Tudo zoado...
Já aqui... Tudo zoado...

 

E o pior é que nem adianta dizer que o problema é só no IE6, que nos outros navegados funciona perfeitamente. Para o cliente só existe o browser que ele usa. Mas também, não adianta reclamar do cliente, tem que funcionar e pronto. O problema aqui é o IE6. 

Nas palavras do meu amigo homoss… Digo, designer: “IE6, te odeio. Por favor, morra.”

O grande empecilho aqui é que eu uso Vista. E testar algo no IE6 para quem usa Vista não é trivial. É preciso baixar o Virtual PC (ou algum outro software de virtualização) e uma Virtual Machine que a Microsoft disponibiliza com o XP SP3 e IE6, válida até Abril deste ano, por enquanto (eles vão lançando outras com o tempo). Tamanho total do download: 440mb. Minha internet é de 128kbs e muito temperamental. E o cliente na bota.

Baixado o VPC, mais uma batalha épica para conseguir fazer o XP virtual acessar o IIS do Vista. Muita briga com configurações de rede e firewall, mas eu consegui.

Então começo a fazer testes aleatórios no CSS para tentar descobrir o que está acontecendo. Eu estou usando CssFriendly Control Adapters, para fazer o Menu do ASP.NET ser gerado em <ul> ao invés da salada de <table>, <td> e javascript que é normalmente.

O grande problema é que o IE6 parece estar simplesmente ignorando todas as intruções “float” do CSS do menu. Todas as tentativas são frustradas, nem o alinhamento do menu à direita, nem os <li> na horizontal funcionam…

Bom, no Firefox ou no Chrome eu esclareceria isso com um “inspect element” e checando o estilo computado do elemento. Mas no IE6? Nem o IE Developer Toolbar funciona…

E agora? #comofas???

EDIT

Consegui resolver o pepino, graças a uma luz em um fórum de ASP.NET. É “só” colocar um width nos <li>, mas caso fixar a largura dos itens não seja uma opção (como é o meu caso), “width: 0px” parece resolver. Works for me!

Moral da história?

Stop living in the past

google contra o internet explorer

Não quero fazer apologia ao Blogger, mas como fã da Google Inc., eu tenho que dar uma fuçada nos produtos da empresa sempre que possível…

Eis que numa fuçada pelo Blogger (também conhecido como Blogspot), olhando a página de “problemas conhecidos” (que muita gente conhece por aí como “known issues” em vários manuais), vejo bem no começo esse texto:

The “Remember Me” login option will not work correctly in Internet Explorer 6.0. The best workaround is to simply use Firefox. However, if you prefer IE, you can add google.com to the list of allowed sites under Internet Options > Privacy.

Uma leve indireta para aqueles teimosos que insistem em usar o IE… Eu só uso para os projetos do trabalho, porque não tem jeito…

Infelizmente, isso já foi corrigido. Mas mesmo assim esse texto continua lá, apenas com o update embaixo.

E se você usa o IE, tá esperando o que para mudar para o Firefox? Até a Google tá dando indireta para mudar!

unnamed feeling

Obs: post feito às 23h05m…

Não sei o que dizer sobre o que estou sentindo agora.
Uma mistura de raiva, revolta, alegria, satisfação. E tudo pelo mesmo motivo!

Gastei as últimas 4/5h buscando na internet um jeito de fazer algo essencial, mas mal documentado: Inserir um texto em algum campo, mas no ponto de inserção (aka cursor).

Procurei em fóruns, sites de busca, mailing lists e nada. O que eu encontrava ou não era exatamente o que eu queria, ou não funcionava plenamente.

Encontrei algo que poderia ser o caminho para a salvação:

pos = $("texto").selectionStart;

Isso me daria a posição do cursor. Já é um começo. A partir daí eu iria dividir o texto entre “antes” e “depois” do cursor e enfiar o que eu queria no meio. Trabalhoso, mas já resolveria o meu problema.
Mas tem um pequenino detalhe: não funciona no Internet Explorer.
Bah! Que novidade… 😦 Me diz o que é que funciona nessa inhaca? E ainda tem 83% do mercado… ¬¬

Como diz o Ruppel:

Para usuário Internet Explorer: mude de navegador.

Pior do que atender só a minoria, minha solução não atendia o meu público alvo

Então volto a camelar… Já sem esperanças… Então tive um lampejo e só para constar: às 22h30, combinando uma dica de um fórum com uma tentativa desesperada e uma olhadinha na Referência do Dreamweaver, cheguei às seguintes mágicas linhas:

$("idtextarea").focus();
var range = document.selection.createRange();
range.text = "texto";

Obs: se você desconhece o comando $("idtextarea") é a mesma coisa que document.getElementById("idtextarea");
Para saber mais, dê uma olhada em http://www.metzen.com.br/freedom/. 😉

E é isso. Essas 3 linhazinhas. Simples assim.
Pior que eu já tinha tentado o document.selection.createRange(); antes, mas o macete está em dar foco no campo antes (no caso, a textarea). Aí vai do gosto do freguês: pelo ID, através do document.formulario.campo ou pelo document.forms['formulario'].elements['campo']Não interessa. O importante é o campo estar com foco antes de você criar o range.

Chato, não?
E eu aqui perdendo horas de sono…
Aliás, deixa eu ir dormir! 😀
Boa noite! o/

Acima ↑