Rozpoznawanie przeglądarki

Różnice interpretacyjne pomiędzy różnymi przeglądarkami powodują, że często jesteśmy zmuszeni do pisania odzielnych fragmentów kodu dla poszczególnych przeglądarek. Aby było to możliwe, musimy najpierw rozpoznać rodzaj przeglądarki na jakiej pracuje użytkownik.

Numer wersji przeglądarki

Do rozpoznania numeru wersji przeglądarki służy właściwość:

navigator.appVersion

Przykład:

zobacz też:
if...else
if(parseInt(navigator.appVersion) >= 4){
 /* kod dla przeglądarki w wersji 4 lub wyższej */
}
else{
 /* kod dla przeglądarki w wersji niższej niż 4 */
}

Ponieważ, pod właściwością navigator.appVersion, kryje się kilka informacji na temat przeglądarki, zastosowaliśmy tutaj metodę parseInt(), która "wyciąga" z tej właściwości tylko sam numer wersji.

Nazwa przeglądarki

Do rozpoznania nazwy przeglądarki służy właściwość:

navigator.appName

Przykład:

if(navigator.appName == "Microsoft Internet Explorer"){
 /* kod dla przeglądarki Internet Explorer */
}

if(navigator.appName == "Netscape"){
 /* kod dla przeglądarki Netscape */
}

Przeglądarkę można również rozpoznać na podstawie charakterystycznych obiektów tworzonych przez nią.

Dla Internet Explorera jest to
document.all

Dla Netscape'a 4.x
document.layers

Zaletą tego rozwiązania jest to, że na przykład obiekt document.layers zostanie rozpoznany nie tylko przez przeglądarkę Netscape, lecz również przez inne przeglądarki kompatybilne z nią (np. Sylaba).

Można również sprawdzić jakąś właściwość typową dla danej przeglądarki.
Na przykład dla Netscape'a 6.x
(navigator.product=="Gecko")

Przykład:

var ie4, ns4, ns6;
ie4=(document.all)&&(parseInt(navigator.appVersion)>=4)
ns4=(document.layers)&&(parseInt(navigator.appVersion)>=4)
ns6=(navigator.product=="Gecko")
/* znak && to operator logiczny AND,
 zobacz rozdział Operatory logiczne */ 

if(ie4) { /* kod dla Explorera w wersji 4 lub wyższej */ }
if(ns4) { /* kod dla Netscape'a w wersji 4 lub wyższej */ }
if(ns6) { /* kod dla Netscape'a w wersji 6 */ }