Modos de Compatibilidade do Internet Explorer


Apesar de não ser um assunto novo resolvi escrever esse artigo mesmo assim, pois existem muitas empresas que estão migrando do Windows XP para o Windows 7 ou 8 (sim, só agora) e, consequentemente, do Internet Explorer 6 para o Internet Explorer 8 ou superior.

Existe um recurso disponível à partir da versão do Internet Explorer 8, chamado modo de compatibilidade, que permite que o navegador processe a página da Web de forma quase idêntica ao Internet Explorer 7.

O modo de exibição de compatibilidade altera a forma na qual o navegador interpreta o código escrito em CSS, HTML, o DOM (Document Object Model) e o mecanismo do JavaScript para tentar corresponder a uma versão anterior do Internet Explorer. Isso permite que a exibição de um site no Modo de Exibição de Compatibilidade, por exemplo, no Internet Explorer 9 seja praticamente idêntica à exibição de um site no Internet Explorer 7. Entretanto, o Modo de Exibição de Compatibilidade não altera a forma com que todo o código é interpretado pelo navegador. Por exemplo, as alterações feitas no Internet Explorer 9 em relação a como o navegador lida com ActiveX, rede e segurança podem ainda causar incompatibilidades em sites ou aplicativos da Web. Esses comportamentos não foram, em sua maior parte, alterados pelo recurso Modo de Exibição de Compatibilidade.

Diferentes maneiras de alterar o modo de compatibilidade

Há várias formas de habilitar o recurso Modo de Exibição de Compatibilidade, que podem ser através do botão de compatibilidade, através das meta-tags ou pelas listas de compatibilidade.

 

Métodos para a habilitação do Modo de Exibição de Compatibilidade:

  • No menu Ferramentas, selecione o Modo de Exibição de Compatibilidade. Isso faz com que o navegador utilize o Modo de Exibição de Compatibilidade para o site acessado.

 

  • O Modo de Exibição de Compatibilidade também pode ser habilitado por meio das Ferramentas para Desenvolvedores, que são exibidas pressionando-se a tecla F12 ou selecionando a opção Ferramentas para Desenvolvedores no menu Ferramentas. A partir do Internet Explorer 8, há uma opção para definir o Modo do Navegador como Modo de Exibição de Compatibilidade do Internet Explorer 8, o que alterna automaticamente o Modo do Documento para Padrões do IE7. A definição do Modo do Navegador modifica a Cadeia de Caracteres UA relatada (alterando-a de MSIE 9.0 ou MSIE 8.0 para MSIE 7.0) e ajusta o vetor de versão que é usado pelo CSS e pelo JavaScript nos documentos. A definição do Modo do Documento modifica o processamento da página. Isso permite que você force a página a ser processada em um dos três modos (Modo Quirks, Padrões do Internet Explorer 7 ou Padrões do Internet Explorer 8) sem modificar a Cadeia de Caracteres UA relatada para o aplicativo da Web. As alterações ao Modo do Documento e ao Modo do Navegador feitas nas Ferramentas para Desenvolvedores persistem por todo o tempo de vida da sessão da guia.

 

  • Habilite o cabeçalho EmulateIE7 X-UA_Compatible. Diferentemente dos métodos anteriores para habilitar o Modo de Exibição de Compatibilidade, esse método é executado usando código HTML inserido diretamente nas próprias páginas. Esse método requer que sejam feitas alterações nas configurações do servidor (usando uma marca de cabeçalho de HTTP) ou em um cabeçalho de nível de página (usando a marca Meta EmulateIE7).

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

  • Use a lista do Modo de Exibição de Compatibilidade. Essa opção funciona se o seu site estiver na lista do Modo de Exibição de Compatibilidade mantida pela Microsoft, ou se você adicionar manualmente uma URL para a lista local do Modo de Exibição de Compatibilidade por meio das Configurações do
    Modo de Exibição de Compatibilidade
    no menu Ferramentas. Você pode verificar se o seu domínio da Web já está na lista de modo de exibição de compatibilidade mantida pela Microsoft no IE9 visitando a versão viva de servidor da lista em http://ie9cvlist.ie.microsoft.com/ie9CompatViewList.xml. Há também uma versão em cache local da Lista do Modo de Exibição de Compatibilidade da Microsoft localizada neste caminho de arquivo: \\%LOCALAPPDATA%\Microsoft\Internet Explorer\IECompatData\iecompatdata.xml.

 

Especificando modos de compatibilidade de documentos

Para especificar um modo de documento para suas páginas da Web, use o elemento meta para incluir um cabeçalho X-UA-Compatible http-equiv em sua página da Web. O exemplo a seguir especifica a compatibilidade do modo Emulate IE7.

<html>
<head>
  <!-- Mimic Internet Explorer 7 -->
  <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >
  <title>My Web Page</title>
</head>
<body>
  <p>Content goes here.</p>
</body>
</html> 

 

O cabeçalho X-UA-compatible não diferencia maiúsculas de minúsculas; entretanto, ele deve aparecer no cabeçalho da página da Web (a seção HEAD) antes de todos os outros elementos, exceto do elemento title e de outros elementos meta.

A tabela a seguir descreve os modos de compatibilidade do documento no Internet Explorer 9:

Valor do conteúdo

Significado

IE=5

Modo “Quirks”.

IE=7

Sempre usar o modo Internet Explorer 7.

IE=EmulateIE7

Exibir no modo Internet Explorer 7 a menos que o site tenha DOCTYPE Quirks.

IE=8

Sempre usar o modo Internet Explorer 8.

IE=EmulateIE8

Exibir no modo Internet Explorer 8 a menos que o site tenha um DOCTYPE Quirks.Além disso, use esta marca para ignorar o Modo
  de Exibição de Compatibilidade nos computadores clientes e forçar o modo Internet Explorer 8.

IE=Edge

Exibir no modo mais recente; no Internet Explorer 9, isso equivale a IE=9.

IE=9

Sempre usar o modo Internet Explorer 9.

IE=EmulateIE9

Exibir no modo Internet Explorer 9 a menos que o   site tenha um DOCTYPE Quirks.Além disso, use esta marca para ignorar o Modo
  de Exibição de Compatibilidade nos computadores clientes e forçar o modo   Internet Explorer 9.

 

Configurando servidores Web para especificar modos de compatibilidade padrão

 

Os administradores de sites podem configurar seus sites para assumirem como padrão um modo de compatibilidade de documentos específico definindo um cabeçalho personalizado para o site. Por exemplo, à partir do IIS 7 (Internet Information Services) é possível definir um cabeçalho personalizado (custom HTTP response
header) que automaticamente configura o modo de compatibilidade de todas as páginas para o modo IE7 no arquivo de configuração (web.config) do site.

<?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> 

 

Siga o seguinte procedimento para configurar o IIS 6, e versões anteriores, para definir um cabeçalho personalizado (custom HTTP response header):

1. Execute o Internet Information Services (IIS) Manager. Uma maneira rápida é executar o inetmgr.exe diretamente do menu iniciar.

2. Expanda o servidor que você deseja configurar e expanda os Web Sites.

3.Clique com o botão direito no site que você deseja configurar e clique em Properties.

4. Clique na tab HTTP Headers.

5. Clique no botão Add da opção Under Custom HTTP headers.

6. Na caixa de texto Custom header name box, digite X-UA-Compatible.

7. Na caixa de texto Custom header value, digite IE=EmulateIE7.

8. Clique OK e aplicar.

Se você especificar um modo de compatibilidade de documentos padrão usando seu servidor Web, poderá substituir essa configuração especificando um modo de compatibilidade de documentos diferente em uma página da Web específica. O modo especificado dentro da página da Web tem precedência sobre o modo especificado pelo servidor.

O site http://blogs.msdn.com/b/ie/archive/2009/03/12/site-compatibility-and-ie8.aspx descreve alguns problemas de compatibilidade decorrente da adequação do IE ao padrão web.

 

Referências:

http://msdn.microsoft.com/en-us/library/ee318404(v=VS.85).aspx

 

Comments (8)

  1. É possível automatizar a inclusão dos http headers no IIS através do adsutil.vbs. Maiores detalhes em: technet.microsoft.com/…/cc780543(v=ws.10).aspx

  2. André Vicente says:

    Existe modo de Documento e Modo do Navegador, no modo Documento, sim é manipulado como descrito no artigo, mas e o modo Navegador, como manipulá-lo?

  3. Existe o plugin UAPick para o Internet Explorer que foi desenvolvido pelo criador do Fiddler e está disponível em http://www.enhanceie.com/…/uapick.asp. Esse plugin tem como objetivo facilitar a troca do Agent String.

    Após a instalação, para personalizar a tela do UAPick, crie o arquivo CustomUAUI.htm (veja a implementação na sessão de anexos desse documento) e configure a seguinte chave no registro:

    [HKEY_CURRENT_USERSoftwareBayden SystemsUAPick]

    @="C:\Program Files (x86)\UAPick"

    "UI_URI"="C:\Program Files (x86)\UAPick\CustomUAUI.htm"

    Para executar o UAPick, clique no item "Set User-Agent String" no menu de ferramentas. Se a caixa "Reutilizar este UA" não for selecionada, o Agent String será revertido para a seqüência de caracteres padrão para novos processos do IE.

    Para adicionar um botão do UAPick na barra de ferramentas, clique na barra de ferramentas do IE com o botão direito e selecione "Personalizar". Mova a entrada do "botão UA" da coluna "Disponível" para a coluna "Atual".

  4. Uma outra opção é alterar o agent string através do Register.

    Essa opção que pode ser utilizada sem intervenção do usuário. Para tanto, é necessário incluir uma chave no registro antes do usuário acessar o site, que configura o navegador para informar que a versão do IE é a 6.

    Chave padrão do IE:

    [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings5.0User Agent]

    @=""

    Chave configurada para que o IE utilize a versão 6:

    [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings5.0User Agent]

    @="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

  5. Exemplo de como alterar usando .NET:

    RegistryKey r =                Registry.CurrentUser.OpenSubKey(@"SOFTWAREMicrosoftWindowsCurrentVersionInternet Settings5.0User Agent", true);

    if (r != null)

    {

    r.SetValue(null, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

    Process p = new Process();

    p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;

    p.EnableRaisingEvents = true;

    p.Exited += (object sender, EventArgs e) => { r.SetValue(null, string.Empty); };

    p.StartInfo.FileName = @"c:Program FilesInternet Exploreriexplore.exe";

    p.StartInfo.Arguments = @"-nomerge http://www.bing.com&quot;;

    p.Start();

    p.WaitForExit();

    }

  6. Teodoro Eggers says:

    Caro Luis Henrique, está muito bem explicado outrossim porque será que no meu menu ferramentas do IE não tem a guia configurações nem nada que diz sobre compatibilidade? Meu windows é 08 e o IE é 10

  7. No IE10 essa opção fica um pouco escondida. Você pode acessá-la ao pressionar F12 ou através do item F12 Developer Tool (Ferramenta de Desenvolvimento F12) no menu Tools (Ferramentas).

    Ao acessar a opção pela primeira vez, a tela ficará fixa na parte inferior do navegador. Você pode clicar em um ícone que permite exibi-la em uma janela a parte.

Skip to main content