Objekt location vsebuje podatke o trenutnem spletnem naslovu in omogoča tudi navigacijo na drug naslov. Ker je location lastnost objekta window, ga lahko v brskalniku običajno uporabljamo tudi brez predpone window.. Pri sodobni razlagi je pomembno poudariti, da nekatere lastnosti zgolj vračajo dele naslova, druge pa lahko ob nastavitvi spremenijo trenutno lokacijo dokumenta.
Pomni: Lastnost window.location vrne objekt Location. Ta objekt ne služi le branju podatkov, ampak lahko z njegovimi metodami ali z nastavitvijo določenih lastnosti sprožimo tudi navigacijo.
Osnovna pravila
- Objekt
locationopisuje trenutni naslov dokumenta. - Lastnost
hrefvrne celoten naslovURL. - Lastnosti
hostname,protocol,pathname,searchinhashvrnejo posamezne dele naslova. - Metoda
assign()naloži nov dokument in praviloma ohrani možnost vrnitve nazaj. - Metoda
replace()zamenja trenutni dokument brez ohranitve trenutnega vnosa v zgodovini seje.
Lastnosti objekta location
| Lastnost | Opis |
|---|---|
location.href |
vrne celoten naslov URL |
location.host |
vrne gostitelja in po potrebi tudi vrata |
location.hostname |
vrne ime gostitelja brez številke vrat |
location.protocol |
vrne protokol oziroma shemo skupaj z dvopičjem |
location.pathname |
vrne pot dela naslova brez poizvedbe in fragmenta |
location.port |
vrne številko vrat kot niz ali prazen niz |
location.hash |
vrne fragment skupaj z znakom # ali prazen niz |
location.search |
vrne poizvedbeni niz skupaj z znakom ? ali prazen niz |
location.origin |
vrne izvor, to je protokol, gostitelja in po potrebi vrata |
Pozor: Lastnost location.pathname ne vrne poizvedbe in ne vrne fragmenta. Za ta dela naslova uporabljamo lastnosti search in hash.
Celoten naslov in gostitelj
Lastnost href vrne celoten naslov strani, medtem ko lastnosti host in hostname vrneta gostiteljski del naslova. Pri host so lahko vključena tudi vrata, pri hostname pa ne.
<p id="primer"></p>
<script>
document.getElementById("primer").innerHTML =
"Poln omrežni naslov je: " + location.href +
"<br>Gostitelj je: " + location.host +
"<br>Ime gostitelja je: " + location.hostname;
</script>
Protokol, pot, parametri in fragment
Lastnost protocol vrne shemo naslova, pathname vrne pot, search vrne poizvedbeni del, hash pa fragment. Lastnost origin vrne izvor dokumenta.
<p id="primer1"></p>
<script>
document.getElementById("primer1").innerHTML =
"Protokol je: " + location.protocol +
"<br>Pot je: " + location.pathname +
"<br>Parametri so: " + location.search +
"<br>Fragment je: " + location.hash +
"<br>Izvor je: " + location.origin;
</script>
Metode objekta location
Metoda assign() naloži nov dokument. Metoda reload() ponovno naloži trenutni dokument. Metoda replace() naloži nov dokument, vendar brez ohranitve trenutnega vnosa v zgodovini seje.
| Metoda | Opis |
|---|---|
location.assign() |
naloži nov dokument in praviloma ohrani možnost vrnitve nazaj |
location.reload() |
ponovno naloži trenutni dokument |
location.replace() |
zamenja trenutni dokument brez ohranitve trenutne strani v zgodovini seje |
Primer uporabe metode assign():
<script>
function novDokument() {
location.assign("https://developer.mozilla.org/");
}
</script>
<input type="button" value="Klikni me, da naložim novo stran!" onclick="novDokument()">
Pomni: Če želimo zamenjati trenutno stran tako, da se uporabnik praviloma ne bo mogel vrniti nanjo z gumbom Nazaj, uporabimo location.replace() in ne location.assign().
Priporočila
- Pri razlagi jasno ločuj med lastnostmi za branje delov naslova in metodami za navigacijo.
- Za celoten naslov uporabi
href, za gostiteljahostalihostname, za pot papathname. - Za poizvedbene parametre uporabi
search, za fragment pahash. - Metodi
assign()inreplace()uporabljaj premišljeno, ker povzročita navigacijo na drug naslov. - Pri razlagi poudari, da je
originkombinacija protokola, gostitelja in po potrebi vrat.
Pogoste napake
- Metoda
assign()se zamenjuje z lastnostjo, čeprav gre za metodo objektalocation. - Lastnost
pathnamese razume kot celoten naslov, čeprav vrne le pot brez poizvedbe in fragmenta. - Lastnosti
hostinhostnamese obravnavata kot povsem enaki, čeprav lahkohostvključuje tudi vrata. - Predpostavi se, da so vse informacije objekta
locationzgolj za branje, čeprav lahko nastavitev nekaterih lastnosti in uporaba metod povzroči navigacijo. - Metoda
replace()se uporablja brez razumevanja, da trenutne strani praviloma ne ohrani v zgodovini seje.