Valide Seite wird unter IE6 und IE5.0 nicht angezeigt
Olaf Schneider
- html
Hallo
ich habe meine Fotowebsite http://foto.olafschneider.de/ von XHTML 1.0 Transitional auf XHTML 1.1 Strict umgestellt und einige kleinere Änderungen in den xsl-Dateien, die für die Darstellung zuständig sind, gemacht.
Sowohl die Seiten als auch die css-Dateien sind valid. Die Seite wird unter Safari Mac und Firefox 1.5 Mac angezeigt, ebenso unter IE5.5 (getestet mit Virtual PC Mac). Unter IE6 und IE5 (ebenfalls via Virtual PC Mac) wird allerdings nur der Hintergrund in der gewünschten Farbe angezeigt, aber kein einziges Contentzeichen.
Meine Frage: Sind lediglich meine IE-Browser zerschossen oder gibt es einen mir unbekannten Grund, warum diese Seiten bis auf den Background nicht dargestellt werden.
Gruß
Olaf Schneider, etwas verwundert und leicht ratlos.
Hi,
Experimente mit meinem FF und IE6 zeigen: Die Browser scheitern am geschlossenen Skript - Fragezeichen im Gesicht? Na ja, sie mögen <script... /> nicht. Wenn du aus
<script type="text/javascript" src="http://foto.olafschneider.de/js/main.js"/>
<script type="text/javascript" src="http://foto.olafschneider.de/js/main.js"></script>
machst, ist alles da.
(oder ich hab noch was anderes geändert ohne es zu merken *g*)
MfG
Rouven
Hallo Rouven, hallo Micha,
Ihr habt beide das Problem erkannt, welches ich nicht gesehen habe.
Folgendes ist passiert: Ich benutze xsl unter php5 (also libxml), um den xhtml-Output zu erzeugen. Im xsl gibt es eine Zeile
<script type="text/javascript" src="{$basePath}js/main.js"></script>
Gebe ich als Ziel xhtml 1.0 transitional an, wird die Zeile mit dem öffnenden und dem schließenden Tag beibehalten. Gebe ich jedoch xhtml 1.1 an, so wird die Zeile automatisch zu <script blabla /> zusammengefasst.
Als Workaround habe ich erst einmal die Zeile durch
<script type="text/javascript" src="{$basePath}js/main.js">//</script>
ersetzt. Das ist natürlich extrem ugly und ich muss mal recherchieren, wie ich dem xsl-Prozessor beibringen kann, die Scriptelemente nicht zusammenzuziehen, bloss weil ich das Ziel auf xhtml 1.1 geändert habe.
Vielen Dank für Eure Hilfe
Gruß
Olaf
Hello out there!
Gebe ich als Ziel xhtml 1.0 transitional an, wird die Zeile mit dem öffnenden und dem schließenden Tag beibehalten. Gebe ich jedoch xhtml 1.1 an, so wird die Zeile automatisch zu <script blabla /> zusammengefasst.
Warum auch nicht? XHTML 1.1 sollte ja auch als XML (application/xhtml+xml) verarbeitet werden.
In XML sind <foo></foo>
und <foo/>
völlig gleichwertig.
<script></script>
und <script/>
sind in XHTML völlig gleichwertig, wenn es als XML (application/xhtml+xml) verarbeitet wird.
Wird das hingegen vom einem Tag-Soup-Parser verarbeitet (text/html), fehlt bei <script/>
das End-Tag. Die verkürzte Schreibweise ist nur möglich bei Elementen, deren End-Tag in HTML 4.01 optional ist; script ist kein solches.
bloss weil ich das Ziel auf xhtml 1.1 geändert habe.
Kannst du einen vernünftigen Grund nennen, warum du das tust? Zu denken, XHTML 1.1 sei der neuste Schrei, ist kein vernünftiger Grund.
XHTML 1.1 schafft bei Verarbeitung als text/html haufenweise Kompatibilitäts-Probleme, application/xhtml+xml können veraltete Browser nicht.
Wenn man nicht ganz genau weiß, was man tut, sollte man von XHTML 1.1 die Finger lassen.
See ya up the road,
Gunnar
Kannst du einen vernünftigen Grund nennen, warum du das tust? Zu denken, XHTML 1.1 sei der neuste Schrei, ist kein vernünftiger Grund.
Der Grund war mit „was Neues probieren“ natürlich geanu so unvernünftig wie „weiter das Alte machen“. Mein ungünstiger Ansatz hat mein Wissen wieder erweitert, auch dank dieses Forums. Also hat sich die Sache doch schon wieder gelohnt.
Gruß
Olaf
Hallo Olaf Schneider,
Hi genaueres kann ich erstmal auch nicht sagen. Meine aber im Forum schon mal hier gelesen zu haben, das bspw. sowas
<script type="text/javascript" src="http://foto.olafschneider.de/js/main.js"/>
(noch) nicht geht im IE. Schreibe statt dessen <script ...></script>
Lokal hat es zumindest bei mir funktioniert...
Mit freundlichem Gruß
Micha
Mein Stand der Dinge:
Verwendet man xsl (unter php5), so wird bei den verschiedenen xhtml 1.0-Varianten ein im xsl stehendes
<script type="text/javascript" src="example.js"></script>
so weitergegeben, während es bei xhtml 1.1 durch
<script type="text/javascript" src="example.js"/>
ersetzt wird. Letzteres ist zwar syntaktisch richtig und auch valid. Allein, IE hat extreme Darstellungsprobleme und zeigt nur den Background der Seite an.
Folgerung für mich: Ich habe meine Seite von xhtml 1.1 auf xhtml 1.0 strict geändert.
Gruß Olaf
Hallo Olaf,
Folgerung für mich: Ich habe meine Seite von xhtml 1.1 auf xhtml 1.0 strict geändert.
recherchiere im Archiv zu XHTML 1.1. Du wirst feststellen, dass viele der Ansicht sind, dass Deine Folgerung weise ist.
Freundliche Grüße
Vinzenz