Strategien für browserunabhängiges JavaScript
Hier die verschiedenen Strategien, die mir spontan eingefallen sind, um das eigene Script browserunabhängig zu machen:
- Browserweiche
Eine einfache aber auch unflexible Lösung ist es eine Browserweiche einzurichten, wodurch der Besucher, je nach Browser, auf eine speziell angepasste Seite geleitet wird. Früher wurde diese Methode sehr oft angewendet, heute allerdings ist es aus Gründen der Barrierefreiheit, Suchmaschinenoptimierung und diversen anderen Gründen nicht unbedingt beliebt. Zudem verursacht die Variante einen großen Mehraufwand, da bei Updates alle browserspezifischen Seiten angepasst werden müssen.
Fazit: Einfach einzurichten und zu testen aber schränkt Besucher ein und macht die Wartung der Seiten kompliziert. -
Verzweigungen nutzen
Bei dieser Methode wird der Browsertyp in einer Variable abgespeichert, wodurch dann im weiteren Verlauf des eigenen Skripts einfache Abfragen eingebaut werden können um die für den jeweiligen Browser benötigte Funktion zu starten — z.B.: Fazit: Relativ einfach umzusetzen. Könnte nur mit der Zeit kompliziert und verwirrend werden, außerdem es kann sein das sich der Code in den browserspezifischen Bereichen unnötigerweise wiederholt. -
Einheitliche Grundfunktionen nutzen
Mittlerweile haben die meisten Browserhersteller ja endlich gemerkt das es irgendwie schlauer ist Ihre JavaScript Implementierungen dem Standard anzupassen. Daher währe es prinzipiell möglich nur diese einheitlichen Funktionen zu nutzen und somit das eigene Skript browserunabhängig zu machen. Aber das wäre ja schon fast ein bisschen zu einfach, denn in der Realität gibt es doch diverse kleine Unterschiede zwischen den JavaScript Implementierungen wodurch ich bezweifele das diese Methode für größere Projekte erfolgreich sein wird.
Fazit: Gut zu warten und Standardkonform, aber nicht alle JavaScript Implementierungen halten sich an den Standard… -
Grundfunktionen auslagern
Für diese Variante sucht man sich die browserabhängigen „low-level“ Funktionen die man verwenden will zusammen und kopiert diese dann in eine eigene Datei. Der Trick dabei ist das man dieses ausgelagerte „Grundgerüst“, auf dem später alle Funktionen aufbauen, einfach für jeden Browser kopiert und dann jeweils an seine Eigenheiten anpasst. Zum Schuss muss dann nur noch das eigentliche Skript so angepasst werden das über eine Browsererkennung entschieden wird welche der ausgelagerten Bibliotheken (z.B. lib_opera.js, lib_firefox.js, etc.) geladen werden soll.
Diese Methode kann man natürlich auch mit der vorherigen kombinieren so das man nur eine Datei erhält und jeweils in den Grundfunktionen zwischen dem Browser unterscheidet.
Fazit: Anfänglich etwas mehr Arbeit um die Grundfunktionen zu erarbeiten und für alle Browser anzupassen, aber später sind die Projekte leichter zu warten und die Änderungen müssen nur an einer Stelle durchgeführt werden. -
Vorhandene Bibliotheken nutzen
Natürlich sind die hier erwähnten Ideen hier nicht neu, daher gab es schon einige schlaue Leute die so eine Basisbibliothek, wie oben erwähnt, entwickelt haben. Da gibt es einige ziemlich gute die auch kostenlos zur Verfügung gestellt werden — also warum das Rad neu erfinden?
Meine Favoriten sind übrigens: Prototype oder jQuery.
Fazit: Keine eigene Arbeit notwendig aber man muss sich in die Bibliothek einlernen und eventuell kann es mit der Lizenz (z.B. bei kommerzieller Nutzung) Probleme geben.



Da ich momentan und in Zukunft wohl leider keine Zeit mehr haben werde
mein


Mit
Nach mehreren Stunden rumprobieren und basteln hatte ich dann endlich den Quelltext so umgestellt und erweitert das er das tat was ich wollte. Danach verbrachte ich noch mehrere Stunden damit ein einfaches Design zu basteln und die Funktionalität rein zu bringen. Dabei hatte ich noch weitere Ideen wie z.B. das öffnen der ausgewählten Tools in einem Framset, automatische Bookmarklet erzeugung und die Unterstützung für Webservices die einen POST-Request erfordern 


