"Quirks Mode" trotz gueltigem XHTML?
-
Hi!
Ich hab ein kleines (komisches) Problem:
meine Homepage (http://bluetiger.bauchlandung.org/) wird vom W3C validator als gueltiges XHTML 1.0 strict erkannt. Wenn ich im Firefox (1.5 Beta) jedoch unter Tools->Page-Info nachschaue, wird mir "render mode: quirks mode" angezeigt.
Speichere ich die so erhaltene Page allerdings einfach auf der Festplatte abspeichere und im Firefox oeffne, steht da ganz richtig "render mode: standard compilance mode". Ebenso wenn ich ueber meinen lokalen Test-Webserver auf die Dateien zugreife. Ich vermute also, das Problem liegt am Webserver (schickt womoeglich die Dateien mit falschem MIME-Typ raus).
Kennt jemand das Problem? Lieg ich mit der Vermutung richtig? Und: was (wenn ueberhaupt) kann man dagegen tun?
-
In der Tat sehr merkwürdig. Am MIME-Type liegt's auf keinen Fall. D.h., wenn du es als application/xhtml+xml ausliefern würdest, wäre es auf jeden Fall im standard mode. Aber wie gesagt, der MIME-Type ist nicht schuld daran, denn text/html ist für XHTML 1.0 vollkommen in Ordnung. Doctype ist ok, XML-Deklaration ist ok. Sehe wirklich keinen Grund, weswegen der Firefox da in den Quirks mode geht. Vielleicht einfach nur ein Bug im FF?
-
Ich hab das im Internet gefunden:
DOCTYPE must be on and only the first line.
Bei dir isser ja erst in der 2. Zeile. vill. liegts daran?
-
-=]xXx[=- schrieb:
Ich hab das im Internet gefunden:
DOCTYPE must be on and only the first line.
Bei dir isser ja erst in der 2. Zeile. vill. liegts daran?
Nein, ist Schwachsinn.
-
Nur mit dem Unterschied, das der Firefox es dann versteht....
Es muss allerdings nicht in der Ersten, sondern komplett in einer Zeile stehen
-
-=]xXx[=- schrieb:
Nur mit dem Unterschied, das der Firefox es dann versteht....
Es muss allerdings nicht in der Ersten, sondern komplett in einer Zeile stehenNein.
-
-=]xXx[=- schrieb:
Ich hab das im Internet gefunden:
DOCTYPE must be on and only the first line.
Bei dir isser ja erst in der 2. Zeile. vill. liegts daran?
Ruf ich die Seite von meinem lokal installiertem Testwebserver aus auf akzeptiert der Firefox die Datei so wie sie ist und schaltet in den "standard compilance mode".
-
Ich hab den Code der Seite mal untersucht (auch mit FF 1.5b), und konnte - ähnlich wie sarfuan - keinen Grund feststellen, weshalb der Firefox in den Quirksmodus geworfen wird.
Blue-Tiger, du sagst, dass der Firefox im Standardmodus rendert, wenn die gleiche Seite von deinem lokalen Webserver geliefert wird. Kann es sein, dass das Verhalten von FF durch die Response-Headers hervorgerufen wird?
Hier sind die Response-Headers, die von deinem Webhost kommen:
HTTP/1.1 200 OK Date: Sat, 24 Sep 2005 13:01:43 GMT Server: Apache/1.3.27 (Linux/SuSE) mod_fastcgi/2.4.2 FrontPage/4.0.4.3 PHP/4.3.1 mod_perl/1.27 mod_ssl/2.8.12 OpenSSL/0.9.6i X-Powered-By: PHP/4.3.1 Keep-Alive: timeout=1, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html
Meinem Auge fällt hier besonders auf, dass der Content-Type Header nur einen MIME-Type angibt, jedoch die Kodierung des Dokuments auslässt. Es ist nur eine wage Vermutung, aber vielleicht ist das der Grund für das Falschverhalten von FF? Du sagtest ja, dass die Seite im Standardmodus gerendert wird, wenn du sie von der Festplatte aus aufrufst. In diesem Fall existieren ja keine HTTP-Headers, und deshalb weiß der FF über den XML-Prolog bescheid in welcher Kodierung das Dokument ist.
Poste mal die Response-Headers von deinem lokalen Webserver (geht mir der LiveHTTPHeaders Extension besonders leicht). Vielleicht erfahren wir dadurch mehr...
-
Aziz schrieb:
Meinem Auge fällt hier besonders auf, dass der Content-Type Header nur einen MIME-Type angibt, jedoch die Kodierung des Dokuments auslässt. Es ist nur eine wage Vermutung, aber vielleicht ist das der Grund für das Falschverhalten von FF?
Die Vermutung mit dem Zeichensatz hatte ich auch schon. Hat sich allerdings als nicht haltbar herausgestellt. Ein einfacher Testfall mit XHTML 1.0 Strict und XML-Prolog als text/html und ohne serverseitige Angabe des Zeichensatzes ausgeliefert wird im FF 1.5 bei mir dennoch im Standard mode gerendert. Daran kann's also auch nicht liegen.
Dazu passt, dass beim Thema Doctype Switching nie davon die Rede ist, dass dergleichen überhaupt berücksichtigt wird.
Wie gesagt, ich glaube mittlerweile immer mehr ganz einfach an einen Bug im FF.
Um die These zu überprüfen müsstest du, Blue-Tiger, einen Testfall online stellen, der folgenden (oder vergleichbaren) JavaScript-Code beinhaltet:<script type="text/javascript">
alert(document.compatMode);
</script>Dann sehen wir ob die anderen Browser deine Seite im Standard oder im Quirks mode rendern. Falls sie den Standard mode verwenden, ist es vermutlich ein Bug im FF - falls sie ebenfalls den Quirks mode verwenden, können wir munter weiter raten ^^
-
So, der Response-Headers meines lokalen Webbrowsers ist (Anfrage ueber Telnet gestellt, die FF-Extension funktioniert mit FF 1.4 nicht):
HTTP/1.1 200 OK Date: Sat, 24 Sep 2005 15:29:47 GMT Server: Apache/2.0.52 (Win32) DAV/2 X-Powered-By: PHP/5.0.2 Connection: close Content-Type: text/html; charset=ISO-8859-1
Die Seite mit dem Tipp von Sarufan findet ihr hier:
http://bluetiger.bauchlandung.org/misc/foo.html
(zeigt sowohl fuer FireFox 1.4 als auch fuer IE und Opera 8.5 Quirksmode an)BTW danke an alle fuer die Hilfe
-
Blue-Tiger schrieb:
http://bluetiger.bauchlandung.org/misc/foo.html
(zeigt sowohl fuer FireFox 1.4 als auch fuer IE und Opera 8.5 Quirksmode an)Selbstverständlich. Alles andere wäre auch sehr merkwürdig. Du hast ja auch nicht den Doctype deiner Seiten sondern ausgerechnet einen typischen "Quirks mode"-Doctype verwendet. Was soll diese Testseite also bringen?
Wenn du etwas testen willst, dann sollte es schon dem Testfall entsprechen. Sprich deinen sonstigen XHTML 1.0 Strict-Seiten mit XML-Prolog - nur halt mit dem Javascript.Schau dir mal diese Seiten an, damit du weißt, worum es bei diesen Modes eigentlich geht:
http://www.mozilla.org/docs/web-developer/quirks/doctypes.html
http://www.opera.com/docs/specs/doctype/
-
mea culpa
Tut mir leid, daran hab ich jetzt echt nicht gedacht gehabt
Neue Testseite: http://bluetiger.bauchlandung.org/misc/test.phpNa egal. Ich hab noch eine Weile dran rummgespielt und versteh jetzt eigentlich die Welt nicht mehr. Wenn ich den "quirks" Source, den ich beim Firefox ueber "View->Page Source" erhalte, in ein leeres HTML-File kopiere und wieder hochlade, wird dieses im "standard compilance mode" angezeigt. Opera hingegen zeigt das Ganze vom Anfang an im standard mode an.
Wenn die Seite von meinem lokalem Webserver kommt, verwendet Firefox ebenfalls vom Anfang an Standard mode.
Ich habe noch die Empfehlung ausprobiert, den Doctype wirklich nur in einer Zeile auszugeben. Siehe da: der Firefox verwendet jetzt auch "standard compilance mode".
Der IE hingegen verwendet nach wie vor Quirks mode (oder er implementiert document.compatMode nicht? ).
EDIT: IE mag wohl kein
<?xml version="1.0" encoding="ISO-8859-1"?>
am Anfang der Datei. Ohne dem verwendet der IE auch den Standard Mode.
Thx an alle die mir geholfen haben
-
Blue-Tiger schrieb:
Ich habe noch die Empfehlung ausprobiert, den Doctype wirklich nur in einer Zeile auszugeben. Siehe da: der Firefox verwendet jetzt auch "standard compilance mode".
Daran alleine kann's nicht liegen. Schau dir einfach mal http://www.w3.org/XML/ als Gegenbeispiel an.
Ist ganz offenbar einfach nur ein Bug im FF 1.5, der durch irgendwas bei dir ausgelöst wird ...EDIT: IE mag wohl kein
<?xml version="1.0" encoding="ISO-8859-1"?>
am Anfang der Datei. Ohne dem verwendet der IE auch den Standard Mode.
Jupp, ist bekannt. Wird erst im IE 7 behoben.
-
Keine Ahnung, ob das damit zusammenhängen kann, aber evtl. liegt es an der Art der Zeilenumbrüche (\r, \n, \r\n, \n\r)