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:
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ę
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 */ }