Corrigindo Problemas de Incompatibilidade de Páginas ASP.NET e o Internet Explorer 8

Postado por Daniel Garcia às 17:10 QUARTA-FEIRA, 29 DE JULHO DE 2009

Tenho visto que algumas pessoa estão encontrando algumas dificuldades em compatibilizar suas aplicações com o Internet Explorer 8. Então resolvi postar algumas dicas que a Microsoft disponibilizou no site do MSDN.

Este documento o conduzirá pelas etapas necessárias para corrigir seu site a fim de que ele seja renderizado corretamente no Windows Internet Explorer 8.

A correção rápida a curto prazo

Você mantém uma página da Web que funciona corretamente no Windows Internet Explorer 7 e gostaria de atualizá-la para que ela funcionasse no Windows Internet Explorer 8 com o mínimo possível de modificações. Há dois métodos disponíveis. Você pode adicionar a cada página uma marca META de modo de compatibilidade, o que fará com que o Windows Internet Explorer 8 renderize a página da mesma maneira que no Windows Internet Explorer 7. Ou, se você controlar seu servidor Web, poderá fazer com que o servidor adicione a compatibilidade automaticamente configurando-o para enviar um cabeçalho de resposta HTTP personalizado equivalente à marca META com cada página da Web.

Como modificar cada página

Coloque a seguinte marca META HTML no elemento HEAD de cada página da Web (antes de qualquer marca que não seja TITLE ou META):

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

Isso instruirá o Windows Internet Explorer 8 a renderizar cada página como se fosse o Windows Internet Explorer 7, corrigindo o seu site.

Como configurar o servidor para modificar cada página automaticamente

Para adicionar automaticamente a mesma compatibilidade a cada página como a marca META HTML, configure seu servidor para enviar o seguinte cabeçalho:

X-UA-Compatible: IE=EmulateIE7

Para configurar o IIS (Serviços de Informações da Internet da Microsoft) 7.0, configure o arquivo Web.config da seguinte maneira:

<?xml version="1.0" encoding="utf-8"?>
<
configuration>
    <
system.webServer>
        <
httpProtocol>
            <
customHeaders>
                <
clear />
                <
add name="X-UA-Compatible" value="IE=EmulateIE7" />
            </
customHeaders>
        </
httpProtocol>
    </
system.webServer>
</
configuration>

(Adicione o arquivo Web.config ao diretório em que deseja aplicar a alteração)

Observe que as marcas de alternância de modos de compatibilidade META presentes na marcação real de uma página da Web sempre prevalecem sobre a declaração do cabeçalho HTTP.

Para obter mais informações sobre como configurar seu servidor Web (incluindo o IIS 6.0) para enviar o cabeçalho de resposta HTTP personalizado, leia os documentos a seguir.

Essas correções a curto prazo são recomendadas apenas para uso rápido e temporário. Eventualmente, você deverá modificar seu site de forma que ele envie código baseado em padrões para o Windows Internet Explorer 8 e versões posteriores e código herdado para as versões anteriores do Windows Internet Explorer.

A solução permanente recomendada 

Você mantém uma página da Web que funciona corretamente no Windows Internet Explorer 7. Você deseja criar uma página baseada em padrões que funcione corretamente no Windows Internet Explorer 8 com tratamento especial para as versões de navegador herdadas. Depois de ter adicionado a nova funcionalidade CSS 2.1 ao fluxo de páginas principal, você precisará configurar o modo de compatibilidade como Padrões do IE8 e usar comentários condicionais a fim de fornecer correções para versões herdadas do Windows Internet Explorer.

Definindo o modo de compatibilidade como Padrões do IE8

Coloque a seguinte marca META HTML na parte superior do elemento HEAD de cada página da Web (antes de qualquer marca que não seja TITLE ou META):

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

Isso instruirá o Windows Internet Explorer 8 a renderizar cada página usando os padrões CSS 2.1.

Você também pode configurar seu servidor Web, como demonstrado acima, para fazer alterações em todo o site; basta alterar o valor do conteúdo para “IE=8”. Lembre-se de que quaisquer alterações de META no nível de página prevalecem sobre os valores do cabeçalho; portanto, os cabeçalhos no nível de página talvez precisem ser alterados ou removidos.

Usando comentários condicionais para manter seu site funcionando com navegadores herdados

O exemplo de código a seguir ilustra como usar comentários condicionais para direcionar o CSS para versões atuais ou herdadas do Windows Internet Explorer.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
   <head>
      <title>Test Page</title>
      <meta http-equiv="X-UA-Compatible" content="IE=8"/>
      <!--[if gte IE 8]>
      <style type="text/css">
      body {
       color: #0000ff;
       background-color: #000000;
      }
      </style>
      <![endif]-->
      <!--[if lt IE 8]>
      <style type="text/css">
      body {
       color: #000000;
       background-color: #ffffff;
      }
      </style>
      <![endif]-->
   </head>
   <body>
      <h1>
      <!--[if gte IE 8]>
      Chapter 1.
      <![endif]-->
      First Chapter
      </h1>
      <h1>
      <!--[if gte IE 8]>
      Chapter 2.
      <![endif]-->
      Second Chapter
      </h1>
      Text any version will see.
   </body>
</html>

Para obter mais informações sobre técnicas de detecção de navegadores, leia os documentos a seguir. 

A solução permanente descrita aqui é o método mais recomendado para a correção de seu site. Ao aderir a esses padrões, seu site funcionará igualmente bem nas versões herdadas do Windows Internet Explorer e no Windows Internet Explorer 8, bem como em quaisquer versões futuras lançadas.

Fonte: MSDN - http://msdn.microsoft.com/pt-br/library/cc817570.aspx

Ninguém avaliou. Dê sua nota!

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: ,

ASP.NET | Internet Explorer

Sobre o Autor

Daniel Garcia - MCP, MCTS, MCPD
Meu nome é Daniel Garcia, venho atuando no mercado de tecnologia há mais de uma década. Durante esse tempo tive a oportunidade de trabalhar com diversas tecnologias, principalmente Microsoft. Conquistei os títulos: MCP, MCTS, MCDP e MCT. Desde então, venho contribuindo com toda a Comunidade, divulgando meu conhecimento das tecnologias Microsoft.