Načrtovanje in razvoj spletnih aplikacij

Objekti brskalnika: Navigator

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 navigator vsebuje 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 language in languages opisujejo jezikovne nastavitve uporabnika.
  • Lastnosti cookieEnabled in onLine vrneta logično vrednost.
  • Lastnost geolocation omogoč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 appName in appCodeName uporabljaj predvsem kot primer združljivostnih ostankov, ne kot zanesljiv vir za določanje brskalnika.
  • Za jezikovne nastavitve uporabljaj language in po potrebi languages.
  • Pri razlagi piškotkov uporabi cookieEnabled, pri razlagi omrežne povezave pa onLine.
  • 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 appName in appCodeName se razumejo kot zanesljiv podatek o dejanskem imenu brskalnika, čeprav sta ohranjeni predvsem zaradi združljivosti.
  • Niza userAgent in appVersion se uporabljata kot glavna osnova za odločanje o delovanju strani.
  • Lastnost onLine se 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.