Obiekt location zawiera informacje dotyczące adresu URL aktualnie załadowanego dokumentu oraz metody pozwalające na manipulację tym adresem.
Właściwości obiektu location
W tabeli 4.6 zostały przedstawione właściwości obiektu location
Tabela 4.6. Właściwość obiektu location
Nazwa |
Znaczenie |
Dostępność |
hash |
Część adresu URL znajdująca się za znakiem #. |
FF, IE3, NN2, OP7 |
host |
Część adresu URL zawierająca nazwę hosta oraz numer portu. |
FF, IE3, NN2, OP7 |
hostname |
Część adresu URL zawierająca nazwę hosta. |
FF, IE3, NN2, OP7 |
href |
Pełny adres URL. |
FF, IE3, NN2, OP7 |
pathname |
Część adresu URL zawierająca ścieżkę dostępu i nazwę pliku. |
FF, IE3, NN2, OP7 |
port |
Część adresu URL zawierająca numer portu. |
FF, IE3, NN2, OP7 |
protocol |
Część adresu URL zawierająca nazwę protokołu (np. http, ftp). |
FF, IE3, NN2, OP7 |
search |
Część adresu URL znajdująca się za znakiem zapytania. |
FF, IE3, NN2, OP7 |
Jeśli zawartość poszczególnych właściwości obiektu location ma zostać zaprezentowana wybranej przeglądarce, można zastosować prosty skrypt widoczny na listingu 4.18.
Listing 4.18. Wyświetlenie składowych obiektu location
<script type="text/javascript">
for(i in location){
document.write(i + " " + location[i] + "<br/>");
}
</script>
Warto też wiedzieć, że w większości implementacji, aby zmienić bieżący URL, można temu obiektowi po prostu przypisać ciąg znaków, poprawne jest więc przykładowe wywołanie:
window.location = "http://helion.pl/ksiazki/cwjas2.htm";
Metody obiektu location
Metoda assign
Wywołanie: location.assign(url)
Dostępność: FF, IE3, NN2, OP7
Metoda assign wczytuje dokument o adresie wskazanym przez argument url.
Metoda reload
Wywołanie: location.reload(force)
Dostępność: FF, IE4, NN3, OP7
Metoda reload wymusza ponowne wczytanie bieżącej strony. Jeśli obecny jest argument force i ma on wartość true, wymusza to ponowne wczytanie zawartości witryny z serwera. W pozostałych przypadkach przeglądarka może wczytać ją z pamięci cache.
Metoda replace
Wywołanie: location.replace(url)
Dostępność: FF, IE4, NN3, OP7
Metoda replace zastępuje bieżący dokument przez wczytany spod adresu wskazanego przez argument url. W przeciwieństwie do metody assign, po zastosowaniu replace bieżąca strona nie zostanie zapisana w historii przeglądanych witryn, nie będzie więc można się do niej ponownie odwołać poprzez wciśnięcie przycisku Wstecz bądź też wywołanie history.go(-1).
Tę metodę można wykorzystać np. w sytuacji, kiedy witryna została przeniesiona pod inny adres, a pod starym ma być umieszczona stosowna informacja oraz automatyczne przekierowanie użytkownika (po zadanym czasie). Jak to zrobić, obrazuje listing 4.19.
Listing 4.19. Przekierowanie użytkownika na nowy adres
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>Moja strona WWW</title>
<script type="text/javascript">
function zmienStrone()
{
window.location.replace("http://helion.pl/ksiazki/jscpk.htm");
}
setTimeout("zmienStrone();", 5000);
</script>
</head>
<body>
<p>Witryna została przeniesiona pod nowy adres:<br />
http://helion.pl/ksiazki/jscpk.htm<br />
Za 5 sekund zostaniesz przeniesiony do nowej lokalizacji.
</p>
</body>
</html>
Metoda toString
Wywołanie: location.toString()
Dostępność: FF, IE3, NN2, OP7
Metoda toString przekształca zawartość obiektu location w ciąg znaków reprezentujący przechowywany przezeń adres URL.