Eu tenho trabalhado em um site de intranet por mais de 6 meses, onde tenho usado o html5 abaixo doctype
e a metatag de compatibilidade de borda para forçar o Internet Explorer a não emular uma versão mais antiga do navegador, e isso tem funcionado bem.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>My title</title>
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
</head>
<body>
</body>
</html>
O motivo pelo qual estava fazendo isso dessa maneira é porque o local em que trabalho usa uma configuração de política para habilitar a exibição de compatibilidade para todos os sites da intranet, e essa abordagem usando a EDGE
configuração funcionou no Internet Explorer 9.
Há mais de um mês, fui atualizado para o Internet Explorer 11 e o site ainda funcionava conforme o esperado.
Hoje isso parou de funcionar como esperado, não posso dizer com certeza, mas acho que a política que força a visualização de compatibilidade não estava habilitada no IE11 e agora está ... e como isso foi habilitado, a metatag de compatibilidade não é mais fazendo o que é esperado, e este site está sendo executado no modo Enterprise que emula o IE8.
Alguém sabe como consertar isso e forçar o uso do IE11 em um site de intranet quando a compatibilidade "modo Enterprise" está sendo aplicada? e não pode ser desativado por meio das configurações do navegador?
EDITAR
Acabei de tentar adicionar um cabeçalho personalizado em meu web.config, conforme explicado nesta resposta https://stackoverflow.com/a/18257208/98706
e isso não funcionou para mim, ainda recebo a mensagem abaixo no console da barra de ferramentas do desenvolvedor de
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
É como se a versão 8 estivesse sendo tratada como edge
quando essa configuração de compatibilidade de intranet fosse habilitada no IE11.
Esta postagem: https://www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css---disabling-compatability-mode explica isso bem, ainda não tentei definir este cabeçalho via código e nossos usuários não têm acesso para alterar as configurações do navegador .. nenhuma das outras alterações funcionou ainda.
ATUALIZAR
Por favor, veja meu comentário neste post sobre qual é a diferença entre o modo Enterprise e o modo de compatibilidade, porque é importante.
Respostas:
Certificar-se de que:
<meta http-equiv="X-UA-Compatible" content="IE=edge">
é a primeira
<meta>
tag em sua página, caso contrário, o IE pode não respeitá-la.Como alternativa, o problema pode ser que o IE está usando o modo Empresarial para este site:
HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
fonte
Esse problema geralmente é causado pelo URL do site / intranet sendo colocado em um dos seguintes:
(com a configuração Exibir sites da intranet habilitada no modo de exibição de compatibilidade )
Em redes corporativas, essas configurações de exibição de compatibilidade costumam ser controladas centralmente por meio da política de grupo . No seu caso, o modo Empresarial parece ser o culpado.
Infelizmente, a configuração de META
X-UA-Compatible
não substituirá isso.Para usuários finais
Às vezes, a única maneira de os usuários finais anularem isso é pressionar F12 e alterar o Modo de documento na guia Emulação . No entanto, essa configuração não é permanente e pode ser revertida assim que as Ferramentas do desenvolvedor forem fechadas.
Você também pode tentar excluir o seu site da zona da Intranet. Mas a lista de domínios que pertencem à zona da Intranet geralmente também é controlada pela política de grupo, portanto, a chance de isso funcionar é pequena.
Para ver a lista de domínios que pertencem à zona da Intranet, vá para:
Ferramentas -> Opções da Internet -> Segurança -> Sites -> Avançado
Se a lista contiver seu subdomínio e estiver acinzentada, você não poderá substituir a visualização de compatibilidade até que o administrador da rede permita.
Você realmente precisa entrar em contato com o administrador da rede para permitir a alteração das configurações de exibição de compatibilidade na política de grupo.
Para administradores de rede
Carregar o site com as Ferramentas do desenvolvedor abertas (F12) geralmente relatará o motivo pelo qual o IE está mudando para um modo mais antigo.
Todas as 3 configurações mencionadas acima são geralmente controladas por meio da Política de Grupo, embora às vezes possam ser substituídas nas máquinas dos usuários.
Se o modo Empresarial for o problema (como parece ser o caso do autor da postagem original), os dois artigos a seguir podem ser úteis:
fonte
Para aqueles que estão construindo um projeto ASP.NET MVC, certifique-se de adicionar:
tag em sua página de Layout (modelo). Acabei de passar duas horas depurando e ajustando, apenas para perceber que só tinha adicionado aquela metatag nas minhas páginas filhas. Assim que o adicionei à minha página de layout, o navegador carregou no modo EDGE perfeitamente.
fonte
A resposta marcada é a correta. No entanto, Pricey, você deve acompanhar isso com seus grupos de AD e administradores de desktop. Eles estão usando indevidamente a lista de sites do modo Empresarial do IE11. A Microsoft NÃO pretende que seja usado para todos os sites de intranet dentro de uma organização. Isso seria propagar a configuração existente "renderizar todos os sites da intranet no modo de compatibilidade", que é a ruína do avanço dos sites corporativos em todo o mundo.
Ele deve ser implementado como uma "lista negra", com um punhado de sites que realmente exigem um modo de navegador legado listado na lista do modo Enterprise com seus requisitos de renderização especificados. Todos os outros sites da sua organização são então liberados para usar o Edge. As pessoas em sua organização que o implementaram com todos os sites de intranet incluídos no início compreenderam completamente mal como o Modo Empresarial deve ser implementado.
fonte
A questão é um pouco antiga, mas acabei de resolver um problema muito semelhante. Temos vários sites de intranet aqui, incluindo aquele pelo qual sou responsável, e os outros exigem modo de compatibilidade ou são interrompidos. Por esse motivo, as regras do site padronizam o IE para o modo de compatibilidade em sites de intranet. Estou atualizando minhas próprias coisas e não preciso mais delas; na verdade, alguns dos recursos que estou tentando usar não parecem certos no modo de compatibilidade. Estou usando a meta tag IE-Edge como você.
O IE assume que os sites sem o endereço totalmente qualificado são intranet e age de acordo. Com isso em mente, eu apenas alterei as ligações no IIS para ouvir apenas o endereço totalmente qualificado e, em seguida, configurei um site fictício que ouviu o endereço não qualificado. O segundo redireciona todo o tráfego para o endereço totalmente qualificado, fazendo o IE acreditar que é um site externo. O site é renderizado corretamente com ou sem a caixa Modo de compatibilidade em sites da intranet marcada.
fonte
Este é um problema antigo com algumas informações boas. Mas o que acabei de descobrir é que usar um FQDN desativa o modo de compatibilidade no IE 9-11. Exemplo. Tenho o problema de
compatibilidade com http: // lrmstst01: 8080 / JavaWeb / login.do,
mas os problemas desaparecem com
http://lrmstst01.mydomain.int:8080/JavaWeb/login.do
NB: O .int faz parte do nosso domínio interno
fonte
Mova-o para a zona de sites confiáveis adicionando-o a uma lista de sites confiáveis ou configuração local. Isso o moverá para fora da zona da intranet e não será processado no Compat. Visão.
fonte
Adicione a propriedade abaixo ao arquivo web.config para sites IIS. Isso funcionou para mim na minha intranet no IE11.
fonte
Resolvi esse problema redirecionando o usuário para o FQDN do servidor que hospeda a intranet.
O IE provavelmente usa o pior algoritmo do mundo para detectar sites "intranet" ... de fato, especificar server.domain.tld resolve o problema para mim.
Sim, você leu corretamente, o IE detecta sites de intranet não por endereço IP privado, como qualquer desenvolvedor que já ouviu falar de TCP / IP faria, não, pela parte "host" da URL, se não tiver parte de domínio, deve seja interno.
É assustador saber que os desenvolvedores do IE não entendem os conceitos mais básicos de TCP / IP.
Observe que isso foi em um GRANDE cliente empresarial, fazê-los mudar o GPO para você é como tentar mover os Alpes em 4 metros para o leste, não vai acontecer.
fonte
Pelo que vale a pena, eu também tive o problema no IE11:
<!DOCTYPE html>
eIE=Edge
configurações mencionadas na pergunta<head>
elementoDepois de um tempo, descobri que:
Cabeçalho HTTP :
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E)
masJavaScript :
window.navigator.userAgent === 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko'
Então acabei fazendo a verificação do lado do cliente.
E BTW, entretanto, verificar o agente do usuário não é mais recomendado. Consulte https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent (mas pode ser um bom caso)
fonte