1. wozu die information verwenden?
theoretisch sieht ja alles ganz wunderbar aus. aktuelle browser unterstützen html 4
und javascript ab version 1.3. fantastisch! zudem hat eine organisation, die sich
ecma nennt, eine standard sprachanforderung herausgegeben, dass heisst, es
gibt funktionen, die einfach unterstützt werden müssen. soviel zur theorie. wie
jeder weiss, sieht die sache in der praxis etwas anders aus. der internet explorer
von microsoft spricht seine objekte in javascript anders an, als sein konkurrent
der netscape navigator 4.7x. das war ja bekannt. seit anfang 2001 gibt es aber eine
neue version von netscape, den navigator 6.0 (5.0 wurde ausgelassen). auf den
ersten blick ist diese release das beste was den webmastern passieren konnte,
da netscape endlich einen nahezu vergleichbaren funktionsumfang besitzt wie der
explorer. doch leider, leider ergeben sich beim genauerem hinschauen probleme:
netscape 6 ist teilweise inkompatibel zu seinem vorgänger (z.B. verwaltung des layer-objektes).
aus diesem grund muss man zwischen den browsern unterscheiden können, denn will man
zum beispiel das documentobjectmodell in seinen skripten
verwenden, muss man von vornherein netscape 4.7x und den explorer 4 und kleiner
ausschließen.
2. wie man den internet explorer von netscape unterscheidet
will man nur zwischen ie (internet explorer) und nc (netscape comunicator) unterscheiden, muss
man nicht unbedingt tief in die trickkiste greifen. in diesem beispiel ist die variable isie true,
wenn es sich nicht um nc handelt (also z.b. bei ie oder opera).
var isie=(navigator.appName=='Netscape' ? false : true);
3. welche version wird verwendet
man kann auch relativ einfach die (einstellige) versionsnummer des browsers auslesen.
wir speichern das ergebniss der prüfung in der variable isver.
if (isie==true) {
var tel=navigator.appVersion.toUpperCase();
//echte versionsnummer steht im ie hinter der zeichenkette "MSIE"
var pos=tel.indexOf('MSIE') + 5;
} else {
var pos=0;
}
isver = navigator.appVersion.charAt(pos);
4. unterstützt der browser dom funktionen
das neue dom ist eine wirklich gute erfindung, man kann damit html objekte im
javascript erzeugen (ohne dazu document.write zu verwenden) und sie nach belieben
verändern oder sogar entfernen (leider in netscape 6 nicht möglich). dummerweise
unterstützt diesen standard nicht jeder browser, also wäre es gut, wenn man abfragen
könnte, ob diese funktionen unterstützt werden. auch diese prüfung ist sehr einfach zu
realisieren. isdom erhält hier den wert true, wenn dom funktionen unterstützt werden.
var isdom=(document.childNodes ? true : false);
|