133 votes

Comment savoir si un navigateur est en mode « quirks » ?

Supposons que vous avez une page avec un relativement stricte doctype et des balises HTML qui est à peu près conforme, mais peut-être manque un peu idiot manières, peut-être en raison du contenu de l'utilisateur qui est hors de votre contrôle.

Comment pouvez-vous dire (ou: ce qui va déterminer) lorsque le navigateur décide d'aller dans "bizarreries" mode plutôt que de l'utiliser, c'est plus conforme aux normes du moteur?

Je suis à la recherche de réponses pour chacun des principaux navigateurs, depuis IE, Chrome, Safari et Firefox bien sûr tous les gérer différemment. Une seule erreur suffit à elle, ou vous avez une certaine marge de manœuvre?

163voto

Chris Ballance Points 17329

Dans Firefox et Opera , vous pouvez déterminer si votre navigateur est en mode « quirks » en vérifiant les infos de la page.

À l’aide de `` , vous indiquera le mode vous êtes dedans avec la plupart des navigateurs.

En Chrome, Safari et IE, exécutez ce javascript dans la barre d’adresse :

(Notez que vous devrez retaper la `` partie après avoir collé dans votre barre d’adresse, en raison de la récente modification de la sécurité)

20voto

Dave Webb Points 90034

Comme vous pouvez interroger le mode de rendu en JavaScript, vous pouvez avoir un Bookmarklet qui dira vous mode de rendre une page utilise.

J’ai trouvé cette façon de rendre mode bookmarklet qui fonctionne bien pour moi :

11voto

Steerpike Points 5937

La réponse complète à votre question spécifique de l' 'Est une seule erreur suffit à elle, ou vous avez une certaine marge de manœuvre? c'est la que ça dépend totalement de l'erreur. Par exemple,

<!-- Comment -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

force mode quirks dans IE 6 & 7 en dépit de ne pas vraiment il a une erreur (ils suffit de jeter un total bancale, lors de la toute première ligne du fichier n'est pas une déclaration). Une liste rapide des types/bizarreries peut être trouvé ici

Essayez de coller la ligne suivante dans votre code HTML pour les tests (très mauvais comportements javascript je suis de passage ici - désolé...assurez-vous que cela ne va jamais en live :)

<a href="javascript:alert(document.compatMode);">What mode am I?</a>

4voto

Selon http://www.quirksmode.org/css/quirksmode.html : « le problème était que les quelques pages écrites en mode quirks n’avaient doctypes. C’est pourquoi chaque navigateur possède sa propre liste avec doctypes ce mode quirks de déclencheur. Consultez ce tableau comparatif de navigateur pour avoir un aperçu de ces listes : http://hsivonen.iki.fi/doctype/"

Espérons que cette aide

3voto

jeffamaphone Points 31732

Si vous dites IE qu’il devrait être stricte (via doctype) ne changera pas son esprit au milieu de la page.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X