10

No puedo deshabilitar el botón de modo de compatibilidad de IE en IE9.¿Cómo puedo desactivar el botón Modo de compatibilidad en IE9?

Mi cabeza y el tipo de documento el siguiente aspecto:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!--[if lte IE 8]> 
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en" class="ie8"> 
<![endif]--> 
<!--[if IE 9]> 
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en" class="ie9"> 
<![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en"> 
<!--<![endif]--> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame --> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 
    <meta name="description" content="meta content here" /> 
    </head> 
    <body> 
    <!-- page content here //--> 
    </body> 
</html> 

¿Cómo deshabilitar el botón de modo de compatibilidad de IE9?

Pensé que hice mi investigación. Apliqué todo tipo de solución alternativa para mostrar todo bien en cada IE de 7 a 9 y más.

El cliente se queja del modo de compatibilidad que cuando se activa, daña el diseño. ¿Hay alguna forma de desactivar ese botón?

Respuesta

4
+0

El problema persiste. Incluso si lo cambio a: ' ' – Cyrax

+0

¿Revisó si había mensajes similares en la consola? Que estés usando comentarios condicionales para declarar la etiqueta HTML me genera banderas. –

+2

Estoy usando una solución propuesta por Paul Irish como una forma de lidiar con la compatibilidad de x-browser. Solo se analizan las etiquetas que apuntan al navegador de particula. No hay mensajes emergentes en la consola. – Cyrax

18
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

del marco del cromo ha sido descontinuado por Google como de Jan 2014, a fin cromo = 1 parte es no se requiere

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

El modo de "borde" normas fuerzas (o el último motor de renderizado) en IE y el "chrome" es para Chrome Frame.

Más información disponible aquí:

+4

Finalmente conseguí que esto funcionara (aunque no incluí el bit 'chrome'), cuando moví esta etiqueta al * muy primero * después de' ' – Michael

+1

La ubicación dentro de' 'no debería importar. Pero las etiquetas condicionales, como '' interferirán con la metaetiqueta adecuada, por lo tanto, no las use. El meta que hace que el botón del modo de compatibilidad desaparezca (probado en IE10 en Windows 7) es '' – goddogsrunning

0

El problema es que en algún lugar de su código js está utilizando browser sniffing código como document.all, window.ActiveXObject, navigatror.userAgent, attachEvent, detachEvent etc.

Reemplace todo con el código de detección de características usando jquery.support y el botón desaparecerá.

1

Descubrí que eran los comentarios condicionales los que hacían que el botón apareciera. Eliminar estos y usar la detección de características en su lugar para agregar mis clases html ha resuelto este problema. Ninguna cantidad de retoques con el material X-UA-Compatible eliminaría el botón.

He utilizado este conjunto de has.js detecta:

if (has("css-border-radius") && !has("input-attr-placeholder")) { 
    html.className += ' ie9'; 
} 

if (!has("css-border-radius") && !has("input-attr-placeholder")) { 
    html.className += ' lt-ie9'; 
} 

if (!has("css-box-sizing")) { 
    html.className += ' ie7'; 
} 
5

yo estaba usando los comentarios condicionales en la parte superior de la página para incrustar una clase ie dependiendo de la versión.(Por ejemplo :)

<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]--> 

Como resultado, a pesar de que estaba poniendo la etiqueta meta X-UA-Compatible, todavía se estaba mostrando el botón de modo de compatibilidad en el IE.

Para solucionarlo, tuve que mover los comentarios condicionales a la parte inferior de la página y usar JS para aplicar las clases ie. El botón Compatibilidad ya no se muestra en IE al ver mi sitio.

<html lang="en"> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=8; IE=9; IE=10; IE=EDGE; chrome=1"> 
    <head> 
    <body> 
    <!-- ..Other content... --> 
    <script type="text/javascript"> 
    window.flagAsIE = function(version) { 
    var cls = document.body.parentElement.getAttribute('class'); 
    document.body.parentElement.setAttribute('class', "ie ie" + version + " " + cls); 
    }; 
    </script> 

    <!--[if lt IE 7 ]><script type='text/javascript'>flagAsIE('6');</script><![endif]--> 
    <!--[if IE 7 ]><script type='text/javascript'>flagAsIE('7');</script><![endif]--> 
</body> 
</html> 
Cuestiones relacionadas