El modo dual señalada por otra persona debe trabajo (pero no qué, como se muestra por Microsoft) y es lo más parecido que he visto en la documentación de MS que debería funcionar como se describe. Hay una actualización a continuación que muestra la forma correcta que debe tomar el valor del atributo meta.
tanto, si utiliza esto:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9">
Por desgracia, lo que se obtiene es la representación IE8 IE8 como causa de la versión vectorial difusa que hace que el motor compatible con ua-x. Consulte este documento: Defining Document Compatibility: Understanding Content Attribute Values en MSDN. En esa sección, verá que en la primera mitad, definen cualquier vector de versión definido como más grande que la versión actual del navegador que se interpretará como el motor de representación más grande disponible. Por lo tanto, emulateIE9 get se traduce a emulateIE8. Estúpido.
Luego, en el mismo aliento prácticamente, hablan sobre el uso de vectores de versiones múltiples como en el fragmento de código anterior para excluir un motor en particular. Pero debido a la lógica de la versión difusa, eso nunca funcionaría. Ah, Microsoft. Fallar nuevamente.
La razón por la cual usar CCs alrededor del meta no funcionará, es que el navegador debe haber elegido un motor de renderizado para cuando golpea un CC. La meta x-u debe aparecer antes que cualquier otra cosa en el encabezado, excepto en otras metas o el título de acuerdo con la documentación de MS.
Si alguien puede resolver esto, soy todo oídos porque estoy desesperado por excluir IE8 del soporte mientras incluyo IE9.
importante actualización:
Robocat señala, utilizando una coma en lugar de un punto y coma como muestra Micrsoft es la forma correcta de hacer esto. Lo probé y funcionó para mí. He actualizado mi test page.
Así que la correcta forma es esto (como lo sugiere robocat):
<meta http-equiv="X-UA-Compatible" content="IE=7, IE=9">
El incorrectos forma es esto (según lo sugerido por Microsoft):
<meta http-equiv="X-UA-Compatible" content="IE=7; IE=9">
IE 8 es compatible con VML, simplemente cambia la forma en que lo declaras/manejas. Por ejemplo, debe usar * -ms-behavior * en lugar de * behavior *. Más en http://ajaxian.com/archives/the-vml-changes-in-ie-8. –
El modo de estándares IE8 es compatible con VML. Hay todo tipo de problemas (cambios, nuevos errores y pobre rendimiento), pero en principio debería ser posible hacerlo funcionar. Microsoft parece estar dejando que la implementación de VML se degrade con cada versión del navegador; presumiblemente lo consideran una tecnología moribunda. – bobince
Ah, hacer trabajo adicional para obtener una disminución del rendimiento de 10x y errores adicionales no es exactamente tentador. – Urjan