Textos categorizados 'compatibilidade'

Emulador do .NET para IE7

E aí leitor! Você também é designer de aplicações em .NET? Então isto aqui pode te interessar…

É diante de um problema que a gente aprende coisas novas. Eu estive esta semana “brigando” com a meta tag:

 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

no sistema de Extranet da SET.

Pra quem não sabe esta tag serve para fazer o Internet Explorer 8 renderizar uma página como se fosse sua versão 7, isto evita o trabalhão de adaptação ao novo navegador por parte dos desenvolvedores, como já sabemos, existem problemas de estética e Javascript que impedem que a página funcione corretamente dependendo do tipo e do versão de navegador.

O que ocorre é que em aplicações mais robustas e que possuem o arquivo Global.asax, pelo menos no meu caso, aplicar esta tag simplesmente no <header> não adianta. Por alguma razão a qual não era meu foco investigar, o navegador não faz a página ter o mesmo funcionamento do antigo navegador pois esta não é uma solução infalível. Existe também o recurso que o IE8 oferece que é a Solução de Compatibilidade, que tem a mesma função da tal tag mas em alguns casos é possível que esta solução não seja uma solução de fato. A gente tem um CMS da IVIA rodando por lá, o Content, onde há relatos de que fazer com o que o IE8 se comporte como IE7 resultou em alguns problemas.

Aí consultei um ex-colega de trabalho, que jogou no Google, que descobriu um artigo do Vitor Canova, desenvolvedor .NET do Rio Grande do Sul, que é este aqui.

Bom, acontece que esta solução não funcionou porque o .NET é anterior ao que usamos, então, eu como um cara legal que sou ;) , tive a idéia de aumentar as informações sobre o tema, e otimizar a solução já escrita para ajudar colegas que estão precisando de ajuda por aí. Então fizemos uma readaptação do código para uma solução mais pontual em .NET 2.0. Seguem os passos mastigadinhos pra que você possa tentar aí:

1. Primeiro procure a Master Page do seu projeto, e inclua lá, como primeira meta-tag de toda a página, a tag <meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″ /> (no cabeçalho logicamente);

2. Compile e rode no navegador. Teste a aplicação e dá uma boa olhada se está tudo ok. Se estiver você nem precisa pular para o próximo passo, senão, vamos em frente.

3. Procure o GLOBAL.asax da sua aplicação (se não existir, então certamente você não precisará de nada além da meta-tag X-UA-Compatible que falei ali acima);

4. Abra o arquivo e crie as funções:

/// <summary>
    /// Método para preparar a renderização compatível com o IE8 (Emular IE7)
/// </summary>
    protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)
    {
        Page p = this.Context.Handler as Page;
        if (p != null)
        {
            p.PreRenderComplete += new EventHandler(p_PreRenderComplete);
        }
    }
/// <summary>
   /// Método que associa o cabeçalho das páginas à compatibilidade IE8
/// </summary>
    protected void p_PreRenderComplete(object sender, EventArgs e)
    {
        Page page = sender as Page;
        if (page.Header != null)
        {
            HtmlMeta meta = null;
            foreach (Control var in page.Header.Controls)
            {
                HtmlMeta metaAux = var as HtmlMeta;
                if (metaAux != null && metaAux.HttpEquiv == "X-UA-Compatible")
                {
                    meta = metaAux;
                }
            }
            if (meta != null)
            {
                page.Header.Controls.Remove(meta);
                page.Header.Controls.AddAt(0, meta);
            }
        }
    }

5. Agora você precisa recompilar tudo, rodar novamente a aplicação e boa sorte.

Deu tudo certo? Me conta depois.

Teste seus sites do IE 5.5 até o IE 8

E ai, colegas webdesigners (e os não-webdesigners pra não causar ciúmes)!  ;)  Há algumas semanas o Internet Explorer 8 passou a fazer parte obrigatoriamente dos navegadores dos testes nossos de cada dia. Isto porque ele já está entrando nos lares e empresas silenciosamente via atualização do Windows XP e logo mais para Vista e Windows 7.

Um novo navegador assusta quem já faz testes em uns 6. Aí sempre vem um salvador da pátria que inventa a solução mirabolante e nos faz relaxar um pouco, neste embalo do novo IE descobri o IE Tester. Depois da ferramenta Múltiplos IE’s, agora em um único navegador também é possível testar seus sites no IE 5.5, IE 6, IE7 e IE8. Acreditem.

Essa eu vi no Twitter do Fernandrácula direto de Sampa!

Não esquece de me dizer se gostou! ;)


Henrique Eduardo Araujo

Twitter

  • O bom de perder todos os dados do seu computador com aquela resetada acidental é que a assinatura de 6 meses do Anti-virus vale por mais 6! 1 day ago

Categorias

Leituras Importantes:

Dias p/ o Aniversário do Blog

Aniversário deste blog

Catraca

  • 26,566 visitantes
Licença Creative Commons