Kompatibel bleiben - aber wie?
Ein Hauptproblem bei der (Java)Scripterstellung ist der Unterschied der Browser und Plattformen. Ein paar Zahlen von Anfang 1999:
- 90% meiner Besucher benutzten Windows-Rechner (davon unter 1% 3.x),
- je etwa 50% verwendeten einen Netscape-Browser bzw. Microsofts Internet-Explorer,
- unter 2% waren mit anderen Browsern oder 2.x-Versionen unterwegs,
- 4.x + -Versionen waren mit ca. 90% vertreten.
Nachtrag: Im Mai 2001 hat sich das Bild verändert:
- 88,9 % waren mit dem IE 5+ da,
- 7,2% mit Netscape 4+,
- je 0,5 % Opera- und Konqueror-Surfer sowie
- 3% Besucher mit anderen oder nicht identifizierbaren Browsern.
2. Nachtrag: Im Februar 2006 sah es dann so aus:
- 65,2 % waren mit dem IE 5+ da,
- 0,3% mit Netscape 7,
- 2,9% mit Mozilla,
- 25,1% mit Firefox,
- 1,5 % mit Opera 7 oder 8 sowie
- 5% Besucher mit anderen oder nicht identifizierbaren Browsern.
Wer also nicht viele Besucher verlieren will, sollte seine Seiten den verschiedenen Ausstattungen anpassen. Hierzu gibt es verschiedene Varianten:
- Extra-Seiten
- Objekt-Abfragen
- Navigator-Abfragen
Bei allen Formen sollte man in der Regel von der einfachsten Seite ausgehen. Eine Weiterleitung zur Einfach-Version etwa scheitert sonst vielleicht schon daran, dass der Browser dieses Script gar nicht versteht!
Mit Extra-Seiten für jede Zielgruppe kann man, z.B. über einen einfachen Link, für jeden Browser, jede Auflösung, jede Plattform oder jede Sprache eigene Dateien erstellen. Beliebt ist hier die Textversion, die jeder Browser versteht. Weit darüber hinausgehende Anpassungen erfordern aber enorme Mehrarbeit und werden schnell unübersichtlich
Die Objekt-Abfrage prüft die Verwendbarkeit von Objekten, z.B.
if (document.all) document.all.blabla... oder if (document.images) {....}
Hat man nun herausgefunden, welche Fähigkeiten der Browser hat, muss man nicht die ganze Seite neu schreiben. Zumeist reicht schon die Definition einzelner Variablen, die dann je nach Browser unterschiedliche Werte oder Quellen haben:
if (document.layers){position=document.layers[0].left} else {position=document.all.f1.style.left;} alert(position)
Hierbei werden alle Browser berücksichtigt, die die entsprechenden Fähigkeiten haben.
Als dritte Möglichkeit lassen sich Browser, Version, Plattform u.a.m. über das navigator-Objekt herausfinden (Beispiel). Diese Methode gibt natürlich mehr Details preis, hat aber auch ihre Tücken: Der Programmierer schließt zumeist einige Besucher unnötig aus, obwohl ihre Browser eigentlich alle Fähigkeiten haben. Es gibt schließlich noch mehr Browser als NN und IE - und eine exakte Abfrage der Browserversion behindert bei unvorsichtigem Gebrauch sogar die neueren Browser.
Nachtrag:
Nach wie vor neigt der IE dazu, Codefehler eher zu verzeihen. Um kompatible Seiten zu
erstellen, empfiehlt sich also ein anderer Browser als Referenz. Zur Zeit (2006) ist
unsere Empfehlung Opera 8: Was hier ordentlich aussieht, tut das in der Regel auch auf IE,
Firefox etc. - und sogar auf dem Mac.