Conflito do SWFobject com IE6 – Erro de Operação Anulada

SWFObject, para quem ainda não conhece, é uma biblioteca javascript muito legal para inserção de arquivos SWF em sua página web sem maiores complicações de incompatibilidade entre navegadores.

swfobject_logo-300x76

Esta semana tive um problema de conflito com o uso do SWFObject para usuários que ainda usam Internet Explorer 6. Ao acessar a página o nosso querido browser de 2001 da Microsoft, aparecia um erro “Operação Anulada” e não abria nenhuma parte do conteúdo.

Aí descobri que na verdade é um erro na interpretação do JavaScript. O IE6 não permite inserir conteúdo (append) no <body> se o script não for filho direto do próprio <body>. Complicado? Não importa. O importante é que a solução para isso é muito simples;

Existe um atributo para a tag <script> chamado DEFER, que pode solucionar, veja o que a própria W3C diz:

“When set, this boolean attribute provides a hint to the user agent that the script is not going to generate any document content (e.g., no “document.write” in javascript) and thus, the user agent can continue parsing and rendering.”

Em outras palavras, ele avisa pro navegador que o script não vai fazer o tal do append e ele continua renderizando o site normalmente.

Veja como a aplicação é simples:

<script defer="defer"> /* parâmetros do SWFObject */ </script>

Seria muito bom se ainda não tivéssemos que perder tanto tempo buscando soluções para problemas que só o IE6 tem, não é verdade? Mas isso não significa que deixamos de nos preocupar com seus usuários, afinal a web deve estar acessível a todos, independente de browser, dispositivo ou sistema operacional.

Faço isso por que é o meu trabalho, mas por outro lado não desejo dar suporte para o Internet Explorer 6 para sempre, e por isso criei há mais ou menos 1 ano a campanha Atualize seu Navegador (Updateyourbrowser.net). Caso não conheça, dê um pulinho por .

Gostou do artigo? Siga-me no Twitter @richardbarros

2 comentá em “Conflito do SWFobject com IE6 – Erro de Operação Anulada

  1. Romulo 23/07/2009 17:59

    Cara to tendo muito problema, usei o W Swfobject para inserir flash no wordpress, mas o IE7 nao o abre de forma alguma, na verdade nao abre nada do site.
    da esta msg:

    Message: Syntax error
    Line: 5
    Char: 1
    Code: 0
    URI: http://site.jcheblog.com.br/wp-includes/js/swfobject.js?ver=2.1

    vc sabe algo q possa me ajudar. Qual arquivo eu possa inserir ?

    Obrigad„o

    Responder

  2. Giovanni 04/01/2010 10:33

    Também notei esse conflito há algum tempo, mas ainda não sabia nenhuma solução. Onde exatamente você colocou o ‘defer=”defer”‘? Na importação da biblioteca SWFObject? Mais uma curiosidade, a utilização da bilioteca era modo dinâmico ou estático? Um forte abraço e feliz 2010!

    Responder

Faça um comentário

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>