Jak używać obiektu location do zmiany URL-a? [JavaScript]
Obiekt location pozwala na przechowywanie adresu URL. Jak sobie radzić z tą klasą JavaScriptu i jak pobierać z niej informacje?
Obiekt location
Samo location posiada własności, które przedstawiają każdy z elementów adresu URL z osobna, jak również cały adres. URL złożony jest z następujących elementów:
protokół://host/ścieżka/#kotwica?ciągwyszukiwania
Własność location.href daje dostęp do całego URL-a. Do poszczególnych jego elementów dostęp zaś dają własności:
-
location.protocol – protokół (np. http:, ftp: czy file:),
-
location.host – nazwa hostu (np. webhosting.pl),
-
location.port – numer portu (zwykle pomijalny, np. 80),
-
location.pathname – ścieżka dostępu (np. /teksty/plik.html),
-
location.hash – kotwica (zakładka) w dokumencie (np. #koniec),
-
location.search – ciąg wyszukiwania, przez który wysyłane są parametry do skryptu (np. ?page=1§ion=a).
Trzeba pamiętać, że protokół jest zachowywany bez znaków ':' oraz '//', w nazwie domeny zachowywany jest także numer portu, a ścieżka nie zawiera początkowego ukośnika '/'.
Jeśli chcemy wygenerować nowy adres, należy pamiętać o odpowiednim złożeniu tych elementów:
| nowyURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname + "/" + [ew. dalsze elementy] |
Metody location
Dzięki location możemy wykonać wiele użytecznych operacji na elementach strony WWW. Wykorzystuje się do tego najczęściej obiekt window.location. Przechowuje on adres URL obecnie załadowanej w przeglądarce strony. Jeśli funkcja JavaScriptu zmieni zatem własność window.location.href, strona powinna zostać przeładowana. Powinna – nie zawsze musi, dlatego w JavaScripcie dysponujemy metodami, które pozwalają na wymuszenie takiej sytuacji. Są to:
-
location.reload() – pozwala na odświeżenie aktualnego dokumentu,
-
location.replace(adres) – pozwala na załadowanie nowego dokumentu bez pozostawiania w histori sesji przeglądarki poprzedniego dokumentu.
Manipulacja URL za pomocą location
Możemy na przykład w prosty sposób przekierować naszych użytkowników:
| <input type="button" onclick="window.location.href='http://www.webhosting.pl/'" value="Wejdź na Webhosting.pl"/> |
Można też przesłać użytkownika do innej kotwicy w dokumencie, korzystając z własności obiektu:
| <input type="button" onclick="window.location.hash='#koniec'" value="Skocz do końca dokumentu" /> |
Lub wymusić przeładowanie strony:
| <input type="button" onclick="window.location.reload()" value="Przeładuj stronę" /> |
albo
| <input type="button" onclick="window.location.reload(true)" value="Przeładuj stronę bez cache" /> |
jeśli chcemy wymusić pobranie strony z serwera, bez korzystania z pamięci podręcznej przeglądarki.
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
19
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Z okazji wypuszczenia akcji Facebooka przypomnijmy sobie, kim jest Zuckerberg
10
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Co czeka programistów po czterdziestce?
27
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Społeczność
stop_gupota "Fanatyczny" Diablo 3 jest dopiero od 10 dni.
Mas Ciekawa informacja, ale akurat projekt wytopu stali przez chłopów to był...
_Igancio Poziom artykułu jest bardzo niski ! Niczego się nie dowiedziałem , wygląda...
voluu A ja mam problem. MIanowicie, po dodaniu kodu z tego poradnika miniaturki...
Sebek Pozycjonowanie stron za pośrednictwem firm oferujących
swoje usługi nie...
asdosad jak to zrobić na xp??
lol Jak ktoś tu wcześniej zauważył - artykuł jest o niczym, a właściwie ukrytą...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









#1 macem 2009-11-05 10:09:17 0
IP: 83.29.142.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4
#2 imb 2011-09-07 12:25:55 0
IP: 62.69.245.[...] Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
#3 kameo 2012-01-12 12:34:19 0
IP: 79.163.1.[...] Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1