|
FAQ de.comp.lang.javascript |
|
Bitte verwenden Sie als Einstiegsadresse in diese FAQ die
Homepage der Newsgroup de.comp.lang.javascript.
Der Aufenthaltsort dieser Seiten hier kann sich ohne Vorwarnung ändern.
Die unterschiedlichen Fähigkeiten der Browser - und deren sind es inzwischen nicht wenige - machen es erforderlich, damit umzugehen. Eine oft gesehene Möglichkeit der Unterscheidung ist die mit Hilfe des navigator-Objektes. Zu empfehlen ist die jedoch nur sehr eingeschränkt, weil sie sehr detailliertes und immer aktuelles Wissen über die gerade im Umlauf befindlichen Browser voraussetzt.
Besser ist es, man untersucht die Fähigkeiten, sprich: Kenntnis bestimmter Objekte, des Browsers. Ganz sauber ist es natürlich, jedes Objekt vor Verwendung auf Vorhandensein zu überprüfen. Ob das sehr praktikabel und immer erforderlich ist? Oft genügt es, den Browser in eine Kathegorie einzuordnen, dazu evtl. eine Kombination aus Frage nach Fähigkeit und Auswertung des navigator-Objektes zu verwenden.
Als für viele Einsatzfälle passend hat sich die von Johann Burkard unermüdlich gepostete Lösung erwiesen::
ie = ( (document.all) && (window.offscreenBuffering) ) ? true : false; nn = ( (document.captureEvents) && (!document.getElementById) ) ? true : false; mz = ( (document.getElementById) && (!document.all) && (document.documentElement) ) ? true : false; op = ( (document.getElementById) && (navigator.userAgent.indexOf('Opera') != -1) ) ? true : false;
Natürlich hat man damit nicht alle möglichen Varianten abgedeckt, vielleicht den einen oder anderen Browser nicht erwischt. Ergänzend sollte man also über
( (!ie) && (!nn) && (!mz) && (!op) )
nachdenken.
Ob eine noch detailliertere Unterscheidung notwendig wird oder
vielleicht eine einfachere nach
getElementByID, document.all, document.layers und
dem verbleibenden Rest schon
ausreicht, muss man im konkreten Fall überlegen; ein allgemeingültiges Rezept läßt sich
schwer oder gar nicht angeben.
Diese Seite ist Teil der de.comp.lang.javascript FAQ. Die Einstiegsadresse lautet http://www.dcljs.de/.
Dieser Text wurde erstellt von Christine Kühnel (©).
© S. Mintert, Ch. Kühnel
______ letzte Änderung: 01.01.2002 ______
Original-URL dieser Datei: http://dcljs.de/faq/antwort.php?Antwort=browser_ermitteln