Frage

Angenommen, Sie haben eine Seite mit einer relativ strengen doctype und HTML-markup, das ist ziemlich nah an konform, aber vielleicht findet in ein paar dumme Wege, vielleicht, weil der Benutzer Inhalte, die außerhalb Ihrer Kontrolle...sagen, Sie arbeiten auf einem content-management-system oder ein Thema für ein content-management-system, wo Ihnen die Kontrolle über einige grundlegende Struktur und brauchen etwas javascript, aber du bist nicht verantwortlich für alles, was geht in den Seiten.

Wie können Sie sagen (oder:was wird bestimmen), wenn der browser entscheidet, zu gehen in "quirks" - Modus eher als verwenden es mehr standards konformen Motor?

Ich bin auf der Suche nach Antworten für jede der gängigen Browser, da IE, Chrome, Safari und Firefox werden natürlich alle handhaben das anders.Ein einziger Fehler reicht, um ihn zu zwingen, oder haben Sie einen gewissen Spielraum?

War es hilfreich?

Lösung

Firefox und Opera Sie können feststellen, ob Ihr Browser in "Quirks-Modus" ist durch die Überprüfung Seite Info.

Mit document.compatMode, wird Ihnen sagen, Sie den Modus in sind mit den meisten Browsern.

Chrome, Safari und IE , führen Sie diesen javascript in der Adressleiste:

 javascript:window.alert('You are in ' + (document.compatMode==='CSS1Compat'?'Standards':'Quirks') + ' mode.')

(beachten Sie, dass Sie den javascript: Teil nach dem Einfügen in die Adressleiste erneut eingeben werden müssen, aufgrund der jüngsten Änderungen der Sicherheitseinstellungen)

Andere Tipps

Wenn Sie den Render-Modus in JavaScript abfragen können Sie eine Bookmarklet die wird Ihnen sagen, die render-Modus eine Seite verwendet wird.

Ich fand dieser Modus Bookmarklet machen das funktioniert gut für mich:

javascript:m=(document.compatMode=='CSS1Compat')?'Standards':'Quirks';window.alert('You%20are%20in%20'%20+%20m%20+%20'%20mode.');

Die vollständige Antwort auf Ihre tatsächliche spezifische Frage ‚Ist ein einziger Fehler genug, um es zu zwingen, oder haben Sie einen gewissen Spielraum?‘ ist, dass es auf den Fehler völlig abhängig ist. Zum Beispiel:

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

zwingt Quirks-Modus in IE 6 und 7 trotz nicht wirklich einen Fehler Ebing (sie werfen nur insgesamt wackelig, wenn die erste Zeile der Datei keine Erklärung ist). Eine kurze Liste der Typen / können Macken hier

finden

Versuchen Sie, die folgende Zeile in die HTML kleben zum Testen (sehr schlecht Javascript behavious ich vorbei hier - sorry ... stellen Sie sicher, das nie geht live:)

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

Nach http://www.quirksmode.org/css/quirksmode.html: „Das Problem war, dass einige Seiten im Quirks-Modus geschrieben doctypes haben daher jeder Browser mit doctypes seine eigenen Liste hat, den Modus auslösen Macken Sehen Sie diese Browser-Vergleichstabelle für eine Übersicht dieser Listen:.. http://hsivonen.iki.fi/doctype/ "

Hope, das hilft

Wenn Sie IE sagen, dass es (über Doctype) streng sein sollte es nicht seine Meinung über die Seite auf halbem Wege ändern.

Wenn ich Quirks-Modus richtig verstanden hat, eine Seite, die nicht gegen seine erklärte Doctype nicht validiert ist nicht genug Quirks-Modus auszulösen. Es wird einfach nicht korrekt angezeigt werden.

Die beste Ressource Ich habe für die Bestimmung gefunden, wie verschiedene Browser handhaben jeder Doctype ist hier .

Für Firefox Web Developer Toolbar-add-on können Sie Blick auf das trio der Symbole auf der rechten Seite der bar.Die am weitesten Links stehende eins erzählt Sie, was Modus Sie sind in.

Im IE werden Sie es in den Entwicklertools (F12) sehen, die es es in dem Menü sagt: Dokument-Modus: ... Und Sie können auch dort einen anderen Modus erzwingen.

in html5 Seite, schreiben Sie „<!DOCTYPE html>“ mit Seite beginnen können sich ändern document.compatMode = 'CSS1Compat'

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top