Main Menu
Home
Links
Artigos
Dicas
Fotos
Carros
Mapa
Internet Explorer e Ajax PDF Print E-mail

Hoje fala-se muito em Ajax, mas desenvolver em Ajax é uma arte. Certo que há vários frameworks que facilitam nossa vida.

 Porém, nem tudo é perfeito.

 Vejam este exemplo:

 No framework que utilizo (Qcodo )há uma implementação muito boa de Ajax, no código que estava desenvolvendo havia uma chamada em Ajax, depois do processamento no servidor, haveria um retorno (alert()), dizendo se houve sucesso ou não na operação.

O retorno era o seguinte: QApplication::ExecuteJavaScript("alert('Escolha uma variável')");

Reparem no caracter acentuado. A chave dos nossos problemas. No Firefox, não há problema algum. Porém, no Internet Explorer 6 a luz vermelha de problemas se acendeu. O Internet Explorer simplesmente não entende  o caracter acentuado através do Ajax.

 Depois de pesquisar, testar, pesquisar, testar achei a solução:

Usando a função urlencode do PHP e a unescape do Javascript. A nossa linha ficou da seguinte maneira:

QApplication::ExecuteJavaScript("alert(unescape('".rawurlencode('Escolha uma Variável')."'))");

O que faz?

Primeiro a mensagem é codificada pelo PHP usando rawurlencode, no output para o Browser há a chamada da função unescape do Javascript. Ou seja, codifica com PHP e decodifica com Javascript.