2009-03-08 8 views

Répondre

22

Avant IE8:

alert('Page was rendered in ' + 
    ((document.compatMode == 'CSS1Compat') ? 'Standards' : 'Quirks') + ' Mode.'); 

Pour IE8:

var vMode = document.documentMode; 
var rMode = 'IE5 Quirks Mode'; 
if(vMode == 8){ 
    rMode = 'IE8 Standards Mode'; 
} else if(vMode == 7){ 
    rMode = 'IE7 Strict Mode'; 
} 
alert('Rendering in: ' + rMode); 

Soyez conscient que pour gagner les benifits de nouveau IE8 "mode standard par défaut" comportement que vous aurez besoin d'être rendu dans IE8 Mode Standards.

Ce mode affecte le rendu de votre HTML + CSS ainsi que les correctifs à JavaScript des méthodes telles que document.getElementById(id); et .setAttribute(name, value);

+1

Astuce: Créer un favori en utilisant le code suivant comme url: _javascript : (function() {var vMode = document.documentMode; var rMode = 'Mode Quirks IE5'; if (vMode == 8) {rMode = 'Mode Standards IE8';} else if (vMode == 7) {rMode = 'IE7 Strict Mode';} alert ('Rendu dans:' + rMode);})(); _ Si vous avez créé votre favori en utilisant ce code, vous pouvez nam e comme "détecter le mode de rendu". Ce n'est qu'en cliquant dessus que vous obtiendrez la boîte aux messages. – SimonSimCity

+0

@SimonSimCity drôle, vous devriez mentionner que - c'est exactement ce que j'ai, sauf le mien appelé "Render Mode" – scunliffe

+0

mais qu'en est-il IE 9 et IE 10? Pourquoi ne pas simplement regarder 'document.compatMode' pour voir si c'est' BackCompat' (mode Quirks) ou 'CSS1Compat' (mode conforme standard) –

1

Vous devriez aussi jeter un oeil à jQuerys jQuery.support. Il vous dira quelles normes sont pris en charge par le navigateur (boxModel, opacité, etc.)

http://docs.jquery.com/Utilities/jQuery.support

-à-dire

jQuery.support.boxModel; //false in IE when in quirksmode, true otherwise. 
+0

Cette propriété a été supprimée dans jQuery 1.8. – chris

Questions connexes