En un entorno controlado por dominio, encuentro que el modo de compatibilidad se activa en ciertos clientes (winXP / Win7, IE8 / IE9) incluso cuando proporcionamos etiquetas X-UA, una definición! DOCTYPE y una respuesta "IE = Edge" encabezados. Estos clientes tienen marcada la casilla de verificación "mostrar sitios de intranet en vista de compatibilidad". Que es precisamente lo que intento anular.
La siguiente es la documentación que he usado para intentar comprender cómo IE decide activar realmente el modo de compatibilidad.
http://msdn.microsoft.com/en-us/library/ff406036%28v=VS.85%29.aspx
http://blogs.msdn.com/b/ie/archive/2009/02/16/just-the-facts-recap-of-compatibility-view.aspx
Los propietarios del sitio siempre tienen el control de su contenido. Los propietarios de sitios pueden optar por utilizar la etiqueta X-UA-Compatible para ser absolutamente declarativos sobre cómo les gustaría que se muestre su sitio y para asignar las páginas del modo Estándares a los Estándares IE7. El uso de la etiqueta X-UA-Compatible anula la Vista de compatibilidad en el cliente.
Google para "Definir la compatibilidad de documentos" , lamentablemente el motor de SPAM no me permite publicar más de 2 URL.
Esta es una ASP .NET
aplicación web e incluye las siguientes definiciones en la página maestra:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
</head>
y web.config
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
He usado Fiddler para verificar que el encabezado se esté inyectando correctamente.
Tengo entendido que con esta configuración debería poder anular la configuración del navegador "Mostrar sitios de intranet en Vista de compatibilidad". Pero, dependiendo del cliente, he descubierto que algunos de ellos todavía activarán el modo de compatibilidad. También parece estar en el nivel de la máquina en lugar de una configuración de grupo de políticas, ya que obtengo resultados diferentes incluso cuando uso con el mismo conjunto de credenciales en diferentes clientes.
Deshabilitar la casilla de verificación Configuración de vista de compatibilidad funciona. Pero el propósito real es asegurarse de que la aplicación se procese exactamente de la misma manera, independientemente de la configuración del cliente.
¿Alguna idea y lo que podría estar perdiendo? ¿Es posible obligar a IE a representar siempre las páginas sin activar el modo Compat?
un millón de gracias,
Jaume
PD: el sitio está actualmente en desarrollo y, por supuesto, no está en la lista de compatibilidad de Microsoft, pero también lo he comprobado por si acaso.
Google para "Comprender la lista de vistas de compatibilidad" , lamentablemente el motor de SPAM no me permite publicar más de 2 URL.
Cambiar mi encabezado a lo siguiente resuelve el problema:
<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
fuente
Actualización: más información útil ¿Qué hace <meta http-equiv = "X-UA-Compatible" content = "IE = edge">?
Quizás esta URL pueda ayudarlo: Activar modos de navegador con Doctype
Editar: hoy pudimos anular la vista de compatibilidad con:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
fuente
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
IE=Edge
ya que la pregunta es sobre deshabilitar el modo de compatibilidad.Para los desarrolladores de Node / Express, puede usar middleware y configurarlo a través del servidor.
app.use(function(req, res, next) { res.setHeader('X-UA-Compatible', 'IE=edge'); next(); });
fuente