Objekt navigator vsebuje podatke o uporabniškem agentu in nekaterih zmožnostih okolja, v katerem se izvaja spletna stran. Ker je navigator lastnost objekta window, ga v brskalniku običajno uporabljamo tudi brez predpone window.. Pomembno je poudariti, da nekatere starejše lastnosti, na primer appName, appCodeName in deloma tudi appVersion, niso zanesljiva osnova za prepoznavanje dejanskega brskalnika, saj so ohranjene predvsem zaradi združljivosti.
Pomni: Pri sodobni spletni praksi praviloma ne sklepamo o zmožnostih strani samo iz niza userAgent, ampak raje preverjamo dejanske zmožnosti okolja.
Osnovna pravila
- Objekt
navigatorvsebuje podatke o uporabniškem agentu in delu okolja izvajanja. - Nekatere starejše lastnosti so ohranjene predvsem zaradi združljivosti in niso zanesljive za prepoznavanje brskalnika.
- Lastnosti
languageinlanguagesopisujejo jezikovne nastavitve uporabnika. - Lastnosti
cookieEnabledinonLinevrneta logično vrednost. - Lastnost
geolocationomogoča dostop do geolokacijskega objekta, vendar zahteva dovoljenje uporabnika.
Lastnosti objekta navigator
| Lastnost | Opis |
|---|---|
navigator.appName |
vrne združljivostno ime brskalnika; v sodobnih brskalnikih praviloma Netscape |
navigator.appCodeName |
vrne združljivostno kodno ime; v sodobnih brskalnikih praviloma Mozilla |
navigator.appVersion |
vrne niz z informacijami o različici uporabniškega agenta |
navigator.userAgent |
vrne niz User-Agent |
navigator.platform |
vrne niz, ki opisuje platformo uporabniškega agenta |
navigator.language |
vrne prednostni jezik uporabnika |
navigator.languages |
vrne seznam prednostnih jezikov |
navigator.cookieEnabled |
vrne true, če so piškotki omogočeni |
navigator.geolocation |
vrne geolokacijski objekt |
navigator.onLine |
vrne informacijo, ali je naprava po mnenju brskalnika povezana z omrežjem |
Identifikacija brskalnika
Starejša gradiva pogosto uporabljajo lastnosti appName, appCodeName, appVersion in userAgent za prepoznavanje brskalnika. Danes moramo biti pri tem previdni, ker te lastnosti niso vedno zanesljive za natančno določanje brskalnika.
<p id="primer"></p>
<script>
document.getElementById("primer").innerHTML =
"appName: " + navigator.appName +
"<br>appCodeName: " + navigator.appCodeName;
</script>
Lastnost appVersion pogosto vsebuje podobne podatke kot userAgent, vendar je vsebina odvisna od brskalnika in okolja. Lastnost userAgent vrne niz User-Agent, vendar njegova analiza ni zanesljiva osnova za prilagajanje delovanja strani.
<p id="primer3"></p>
<script>
document.getElementById("primer3").innerHTML =
"Različica brskalnika: " + navigator.appVersion +
"<br>Opis uporabniškega agenta: " + navigator.userAgent;
</script>
Pozor: Niza navigator.userAgent in navigator.appVersion ne uporabljamo kot glavno merilo za prepoznavanje brskalnika, če lahko isto nalogo rešimo s preverjanjem zmožnosti.
Podatki o okolju uporabnika
Lastnost platform vrne niz, ki opisuje platformo, na kateri teče uporabniški agent, lastnosti language in languages pa opisujeta jezikovne nastavitve.
<p id="primer1"></p>
<script>
document.getElementById("primer1").innerHTML =
"Platforma: " + navigator.platform +
"<br>Jezik: " + navigator.language;
</script>
Če želimo dobiti več jezikovnih nastavitev, uporabimo lastnost languages.
<p id="primer5"></p>
<script>
document.getElementById("primer5").textContent =
"Prednostni jeziki: " + navigator.languages.join(", ");
</script>
Lastnost onLine vrne logično vrednost, ki pove, ali je naprava po mnenju brskalnika povezana z omrežjem.
<p id="primer7"></p>
<script>
document.getElementById("primer7").textContent =
"Povezava v omrežje: " + navigator.onLine;
</script>
Zmožnosti okolja
Lastnost cookieEnabled vrne true, če so piškotki omogočeni. Lastnost geolocation vrne geolokacijski objekt, ki ga lahko uporabimo za pridobivanje položaja uporabnika, vendar le z njegovim dovoljenjem.
<p id="primer4"></p>
<script>
document.getElementById("primer4").textContent =
"Omogočeni piškotki: " + navigator.cookieEnabled;
</script>
Metoda javaEnabled() je del starejšega nabora navigatorja. V sodobnih okoljih vrne false in ni več pomemben način preverjanja delovanja strani.
<p id="primer6"></p>
<script>
document.getElementById("primer6").textContent =
"Omogočena Java: " + navigator.javaEnabled();
</script>
Pomni: Lastnost navigator.geolocation vrne objekt, toda dostop do položaja uporabnika zahteva posebno dovoljenje.
Priporočila
- Lastnosti
appNameinappCodeNameuporabljaj predvsem kot primer združljivostnih ostankov, ne kot zanesljiv vir za določanje brskalnika. - Za jezikovne nastavitve uporabljaj
languagein po potrebilanguages. - Pri razlagi piškotkov uporabi
cookieEnabled, pri razlagi omrežne povezave paonLine. - Geolokacijo uporabljaj le tam, kjer je njena raba res smiselna in jasno pojasnjena.
- Pri prilagajanju delovanja strani praviloma raje preverjaj zmožnosti kot pa ime in različico brskalnika.
Pogoste napake
- Lastnosti
appNameinappCodeNamese razumejo kot zanesljiv podatek o dejanskem imenu brskalnika, čeprav sta ohranjeni predvsem zaradi združljivosti. - Niza
userAgentinappVersionse uporabljata kot glavna osnova za odločanje o delovanju strani. - Lastnost
onLinese razume kot popolnoma zanesljiv pokazatelj dostopa do vseh omrežnih storitev. - Metoda
javaEnabled()se obravnava kot pomembna sodobna metoda, čeprav v današnjih okoljih praviloma nima več praktične vloge. - Geolokacija se razlaga brez poudarka, da je za dejanski dostop do položaja potrebno dovoljenje uporabnika.