2012-06-11 35 views

Respuesta

124
<!doctype html> 
<meta http-equiv="X-UA-Compatible" content="IE=Edge"> 

Esto hace que cada versión de IE utilice su modo estándar, por lo que IE 9 utilizará IE 9 modo estándar. (Si por el contrario usted quería las nuevas versiones de IE para también específicamente el uso de IE modo de 9 estándares, debería reemplazar Edge por 9. Pero es difícil ver por qué desea eso.)

Para explicaciones, ver http://hsivonen.iki.fi/doctype/#ie8 (parece bastante desordenado, pero eso se debe a que el IE es desordenado en sus comportamientos).

+10

Esto no funciona si su contenido se está cargando en un iframe y la ventana primaria no tiene un tipo de documento especificado. Seguirá aplicar el modo peculiar al iframe también. Odio Microsoft. También aquí hay un enlace a un sitio de Microsoft hablando de esta respuesta. http://msdn.microsoft.com/en-us/library/ie/hh920756(v=vs.85).aspx – teewuane

+0

Tampoco funciona si tiene contenido además de la declaración 'DOCTYPE' antes del' HTML' etiqueta. – crush

+1

Esta respuesta fue correcta hace un tiempo, pero ahora que IE10 está fuera, se procesará y en el futuro representará el IE más nuevo. Vea la respuesta de SuperDuck a continuación para renderizar en IE9 explícitamente. – DrCord

0

Asegúrese de utilizar el tipo de documento correcto.

por ejemplo.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

o simplemente

<!doctype html>

y también read y entender cómo los modos de compatibilidad y barra de herramientas de desarrollador para el trabajo de IE y establecer modos de IE:

5

ponen un tipo de documento como la primera línea de su documento html

<!DOCTYPE html> 

se puede encontrar una explicación detallada sobre el documento de compatibilidad de Internet Explorer aquí: Defining Document Compatibility

+0

@ inancsevinc: Mi página aspx ya tenía y todavía estaba usando el modo de documento IE7 cuando se procesó. Entonces, en este sentido, su sugerencia por sí sola NO resolvió mi problema. El truco para mí fue agregar inmediatamente debajo de lo sugerido por Jukka K. Korpela. Aprecio que su sugegstion pueda ser válida, simplemente no entiendo por qué esto por sí solo no forzaría IE al modo IE9 para mí. – leoinlios

5

Para evitar peculiaridades modo, definir un 'tipo de documento' como:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 

Para hacer que IE representar la página en modo documento IE9:

<meta http-equiv="x-ua-compatible" content="IE=9"> 

Tenga en cuenta que "IE=edge" hará IE hacen que el página con el modo de documento más reciente, en lugar del modo de documento IE9.

10

Hay algo muy importante sobre este hilo que se ha tocado pero no se ha explicado del todo. El enfoque HTML (agregar una metaetiqueta en el encabezado) solo funciona de manera consistente en HTML sin procesar o en páginas de servidor muy básicas. Mi sitio es un sitio muy complejo impulsado por servidor con páginas maestras, temas y muchos controles de terceros, etc. Lo que encontré fue que algunos de estos controles agregaban programáticamente sus propias etiquetas al HTML final que se estaban enviando al navegador al comienzo de la etiqueta de la cabeza. Esto efectivamente hizo inútiles las metaetiquetas HTML.

Bueno, si no puedes vencerlos, únete a ellos. La única solución que funcionó para mí es hacer exactamente lo mismo en el caso de pre-procesamiento de mis páginas maestras tales como:

Private Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender 
    Dim MetaTag As HtmlMeta = New HtmlMeta() 
    MetaTag.Attributes("http-equiv") = "Content-Type" 
    MetaTag.Attributes("content") = "text/html; charset=utf-8;" 
    Page.Header.Controls.AddAt(0, MetaTag) 

    MetaTag = New HtmlMeta() 
    MetaTag.Attributes("http-equiv") = "X-UA-Compatible" 
    MetaTag.Attributes("content") = "IE=9,chrome=1" 
    Page.Header.Controls.AddAt(0, MetaTag) 
End Sub 

Esta es VB.NET, pero el mismo enfoque podría funcionar para cualquier lado del servidor tecnología. Siempre que se asegure de que sea lo último que se haga justo antes de que se muestre la página.

+0

Tuve el mismo problema, uso DNN en mi sitio (ewwww) y esta era la única solución al problema, todo el otro asumió que tenía control directo sobre la etiqueta en HTML. –

3

asegúrese de tomar en cuenta que la adición de esta etiqueta,

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

sólo podrá permitir la compatibilidad con las versiones más recientes. Todo depende de sus bibliotecas

17
<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 

La etiqueta meta debe ser la primera después de la etiqueta head o no funcionará.

+4

Siempre me pregunto qué sucede cuando en algún momento se necesita otra metaetiqueta que también debe colocarse antes que las demás ... – JensG

0

he intentado con un método alternativo:

clave Hit F12 Entonces, al lado derecho en el menú desplegable, seleccione la versión de Internet Explorer 9.

abajo Eso es todo y funcionó para mí.

Cuestiones relacionadas