Safari unter Windows Vista

Vor ein paar Wochen hatte ich irgendwo gelesen, dass es den Safari-Browser von Apple als Beta für Windows (auch für Vista) gibt. Natürlich sofort ausprobiert und es sieht mittlerweile (nach Updates) in der Version 3.0.4 auch ganz passabel aus.

Allerdings zeigte er meine schönen cms4xml-Webseiten nicht an. Das war doch recht betrüblich.

Nun wollte ich mir anschauen, was das Problem ist. Typischerweise mittels Debug-Fenster oder DOM-Explorer. Beides lässt sich aktivieren und es gibt eine Menge Fundstellen im Web, wo man sich darüber ausgelassen hat. Der Vollständigkeit beschreibe ich es auch ganz kurz, wie es unter Vista geht:

Zunächst in die Datei
Desktop/username/AppData/Apple Computer/Safari/Preferences.plist
eine weitere Zeile hinzufügen: <key>IncludeDebugMenu</key><true/>. Dann noch im gleichen Verzeichnis in die Datei WebKitPreferences.plist hineinschreiben:
<key>WebKitDeveloperExtras</key><true/>
und man erhält einen zusätzlichen Menu-Punkt namens Debug bzw. im Kontext-Menu per rechter Maustaste den Eintrag Inspect Element.

Unter Debug gibt es eine Java Script Console, die recht ordentlich die JavaScript-Fehler anzeigt. Unter Inspect Element befindet sich ein DOM-Explorer mit allem, was dazu gehört. Sehr schön! Leider zeigten sich die Fehler meiner cms4xml-Seiten nicht. War schließlich auch was anderes, das leider nicht sehr schön ist, weil es nur den Safari betrifft (Firefox und IE geben die Seiten tadellos aus).

Hier nun die Lösung des Falls: Ich verwende zur Aufbereitung der xml-Seiten xsl-Skripte, die eigentlich nur HTML enthalten. In xsl-Scripten besteht ja die schöne Möglichkeit weitere xsl-Files per xsl:import zu inkludieren, was ja bekanntlich in HTML nicht geht und auf diese Weise läßt sich auch ein modularisiertes HTML aufbauen. Naja die xsl:import-Directive in den xsl-Files war das Problem. In Manual heisst es, dass es sich um ein Toplevel-Element handelt, das vor allen anderen Toplevel-Elementen stehen muss usw. usw. Es muss sich also als erste Child-Node des xsl:stylesheet- oder xsl:transform eintragen können. Ich hatte zwischen xsl:stylesheet und xsl:import noch Kommentar stehen und das hat den Safari gestört. Kommentar verschoben und schon war das Problem gelöst. Jaja, es stimmt: Kommentare sind child-Nodes, aber muss man so pingelig sein ...