Será que borda redonda funciona no IE 8?

Atributos HTML5, CSS3 e ECMAScript 5 estão completamente zoados para os navegadores. Nem tudo é suportado em todos os browser.

Quando vou utilizar algo diferente eu sempre me pergunto, vai funcionar nos outros? O site http://caniuse.com/ (Can I Use) apresenta todos os comandos e como está o suporte em cada uns dos browsers conhecidos.

E respondendo a minha pergunta inicial, não, border-radius só é suportado a partir do IE 9.

Anúncios

Um navegador português

Não sou totalmente contra o Internet Explorer (IE), o grande problema dele é ser muito diferente dos demais navegadores, mesmo sendo um dos mais antigos no mercado.

O Google Chrome chegou a menos de 5 anos e teve uma evolução muito rápida, enquanto que o IE continua morro abaixo.

Esses dias fiz a libertação de um site e ele simplesmente não abria no IE de um colega. Em outros navegadores funcionava perfeitamente. Lá vou eu,  testo no meu IE 9 e funciona. Abro uma máquina virtual e testo no IE 10 e funciona. Começo a pensar que estou louco. Finalmente consigo simular em outro computador.

Fuçando daqui e dali e nada de achar o problema entro nas configurações de segurança e vejo que está como nível alto, fazendo com que todo o código javascript não fosse carregado.

O problema não está em existir essa opção e sim porque deixar que um usuário impeça o carregamento de código para a página e não avisar que não foi carregado.

É quase como ter uma opção para quando carregar um documento de texto não trazer o texto,  somente 20 páginas em branco.  Ia ser divertido?!

Tempo perdido no navegador

Todo o desenvolvedor de software web tem um grande problema e ele se chama browser, ou navegador, ou programa_que_eu_navego. Atualmente o mais utilizado (e melhor) é o Google Chrome, mas temos que nos preocupar com Internet Explorer 9, Internet Explorer 10, Firefox, Opera, Safari e algum novo que é utilizado por menos de 1% das pessoas.

Existem alguns padrões que regulam o desenvolvimento web, principalmente o W3C. Mas a coisas é meio zoada. Ter o mesmo layout funcionamento perfeitamente em todos os navegadores é um dom e eu não tenho esse dom, mesmo porque o DOM muda bastante. 😀

Recentemente eu tive um problema, uma requisição HTTP Post realizada através do jQuery não estava funcionando no IE 9, mas no IE 10 sim. A mensagem de erro do browser era muito bem detalhada, era o seguinte “No Transport”. Depois de algum tempo procurado encontro que o problema ocorre por causa das requisições entre 2 servidores (chamada de CORS, http://pt.wikipedia.org/wiki/Cross-origin_resource_sharing) e que o IE 9 não implementa totalmente isso. Depois de muita troca de código e procura, consigo evoluir o problema, a mensagem passou a ser “Acesso Negado”.

Horas (no plural mesmo) procurando uma solução e finalmente encontro um post http://stackoverflow.com/questions/10232017/ie9-jquery-ajax-with-cors-returns-access-is-denied com o que viria a ser a minha solução. A explicação é bem simples, o jquery ajax utiliza o XMLHttpRequest para realizar a requisição, porem o IE 9 não permite utiliza-lo neste cenário. Existe um outra solução, que somente o IE suporta, utilizar o XDomainRequest.

Um cara, e eu confio em alguém vestido de Batman, criou um código que modifica o comportamento do jquery ajax para usar o XDomainRequest quando necessário. Obrigado Julian Aubourg (https://github.com/jaubourg).

Depois disso tudo funcionou?? Não, claro que não, nada é tão fácil, tivemos que alterar o serviço pois o XDomainRequest transfere os dados de maneira diferente do XMLHttpRequest. Finalmente achamos um meio termo que funcionou para ambos.

Moral da história: poderia só existir o Netscape Navigator.