Pytanie Uzyskaj aktualny adres URL z JavaScript?


Chcę tylko uzyskać adres URL witryny. Nie adres URL zaczerpnięty z linku. Podczas ładowania strony muszę mieć możliwość pobrania pełnego, bieżącego adresu URL witryny i ustawienia jej jako zmiennej, tak jak proszę.


2528
2018-06-23 19:26


pochodzenie


Możliwy duplikat: Pobierz protokół, domenę i port z adresu URL - blong
stackoverflow.com/questions/406192/... - Nilesh Botre
Aby zrobić z, jak proszę ... :-p - Peter verleg


Odpowiedzi:


Posługiwać się:

window.location.href 

Jak zauważono w komentarzach, poniższa linia działa, ale jest błędna w Firefoksie.

document.URL;

Widzieć Adres URL typu DOMString, tylko do odczytu.


3153
2017-12-23 15:33



W przeglądarce Firefox 12 document.URL właściwość nie aktualizuje się po window.location do kotwicy (#), natomiast window.location.href robi. Przygotowałem tutaj demo na żywo: jsfiddle.net/PxgKy Nie testowałem żadnych innych wersji Firefoksa. Nie ma problemów z używaniem document.URL zostały znalezione w Chrome 20 i IE9. - Telmo Marques
również możesz uzyskać host i jasne położenie: window.location.host i window.location.href.toString().split(window.location.host)[1] - ali youhannaei
a co document.baseURI o tym. Zasadniczo istnieją 3 sposoby na uzyskanie adresu URL document.baseURI, document.URL& location. - Muhammad Umer
-1: Jeśli masz ramkę, obraz lub formularz name="URL" wtedy ta właściwość będzie zacieniona na document obiekt i twój kod się zepsuje. W tym wypadku, document.URL odwoła się do węzła DOM. Lepiej używać właściwości obiektu globalnego jak w window.location.href. - Roy Tinker
"window.location.href" dla wygranej - GabrielBB


Dostęp do informacji URL

JavaScript zapewnia wiele metod pobierania i zmieniania bieżącego adresu URL, który jest wyświetlany na pasku adresu przeglądarki. Wszystkie te metody korzystają z Location obiekt, który jest własnością Window obiekt. Możesz utworzyć nowy Location obiekt, który ma bieżący adres URL w następujący sposób:

var currentLocation = window.location;

Podstawowa struktura adresu URL

<protocol>//<hostname>:<port>/<pathname><search><hash>
  • protokół: Określa nazwę protokołu używaną do uzyskania dostępu do zasobu w Internecie. (HTTP (bez SSL) lub HTTPS (z SSL))

  • nazwa hosta: Nazwa hosta określa hosta, do którego należy zasób. Na przykład, www.stackoverflow.com. Serwer świadczy usługi na podstawie nazwy hosta.

  • Port: Numer portu używany do rozpoznawania określonego procesu, do którego ma zostać przesłany komunikat internetowy lub inny komunikat sieciowy po przybyciu na serwer.

  • ścieżka: Ścieżka zawiera informacje o określonym zasobie w hoście, do którego chce uzyskać dostęp klient sieci. Na przykład, /index.html.

  • pytanie: Łańcuch zapytania podąża za komponentem ścieżki i dostarcza ciąg informacji, które zasób może wykorzystać do pewnego celu (na przykład jako parametry wyszukiwania lub dane do przetworzenia).

  • haszysz: Część zakotwiczająca adresu URL zawiera znak krzyżyka (#).

Z nimi Location właściwości obiektu można uzyskać dostęp do wszystkich tych składników URL i co można ustawić lub zwrócić:

  • href - cały adres URL
  • protokół - protokół adresu URL
  • gospodarz - nazwa hosta i port adresu URL
  • nazwa hosta - nazwa hosta adresu URL
  • Port - numer portu używany przez serwer dla adresu URL
  • ścieżka - nazwa ścieżki adresu URL
  • Szukaj - część kwerendy adresu URL
  • haszysz - część zakotwiczająca adresu URL

Mam nadzieję, że dostałeś odpowiedź ...


523
2018-06-23 19:35



To najlepsza odpowiedź dla mnie. Założę się, że większość osób tutaj nie tylko szukała sposobu uzyskania aktualnego adresu URL, ale także innych informacji podanych w odpowiedzi. THanks @Nikhil - Jason Kim
Nie są "metodami" window.location, ale właściwości, i tutaj mamy przykład: var stringPathName = window.location.pathname. - Peter Krauss
Dziękuję bardzo, proszę, nie ścieżka już zawiera początkowy / (przynajmniej w Google Chrome) - Fabio C.
@FabioC. Możesz usunąć to przez substring. Może się jednak przydać, gdy chcesz użyć do przekierowania document.location = "/page.html"; przekieruje do strony głównej page.html - FindOut_Quran
Pamiętaj o ie9 pathname nie ma wiodącego ukośnika, więc może być index.html. - AJcodez


To samo pytanie został zapytany mniej niż 24 godziny temu. Zacytować siebie:

Posługiwać się window.location do odczytu i   napisz dostęp do Lokalizacja   obiekt   związane z bieżącą ramką. Gdyby   po prostu chcesz uzyskać adres jako   ciąg tylko do odczytu, możesz go użyć    document.URL, które powinno zawierać   taka sama wartość jak    window.location.href.


309
2018-06-23 19:28



Zobacz też stackoverflow.com/questions/2430936/... - Christoph


Pobiera bieżący adres URL strony:

window.location.href

249
2017-09-10 06:51



Zauważ, że to lokalizacja okna, a nie dokument. - Gumbo
To jest to samo. Pełny aktualny adres URL odnosi się do ścieżki dokumentu (adres zewnętrzny). - Zanoni
Czy jest standaryzowany jak document.url? (Mam na myśli coś w rodzaju dokumentu w3c) - chendral
@klasa: w3.org/TR/Window/#location - Christoph
document jest katalogiem drzewa dokumentów zdefiniowanym przez specyfikację. window jest zasadniczo równoważny, ale może nie być w niektórych dziwnych okolicznościach. - broinjc


Aby uzyskać ścieżkę, możesz użyć:

alert("Url  ="+document.location);
alert("PathName  ="+ window.location.pathname);// Returns path only
alert("url  ="+window.location.href);// Returns full URL


30
2018-04-25 16:14





Posługiwać się: window.location.href.

Jak wspomniano wyżej, document.URL  nie aktualizuje się podczas aktualizacji window.location. Widzieć MDN.


26
2018-06-09 09:32





otwarty Narzędzia deweloperskie, wpisz w polu konsola i naciśnij Wchodzić.

window.location

Przykład: poniżej zrzut ekranu wyniku na bieżącej stronie.

enter image description here

Chwyć to, czego potrzebujesz stąd. :)


25
2018-03-26 06:10





  • Posługiwać się window.location.href , aby uzyskać pełny adres URL.
  • Posługiwać się window.location.pathname aby uzyskać URL opuszczający hosta.

18
2017-10-08 15:24



window.location.pathname nie zawiera zapytania i fragmentu skrótu - OMGPOP


Możesz uzyskać aktualną lokalizację adresu URL z hashiem używając:

JavaScript:

 // Using href
 var URL = window.location.href;

 // Using path
 var URL = window.location.pathname;

jQuery:

$(location).attr('href');

13
2017-10-07 02:31





OK, dostaję pełny adres URL bieżącej strony jest łatwe przy użyciu czystego JavaScript. Na przykład spróbuj tego kodu na tej stronie:

window.location.href;
// use it in console of this page will return
// http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser"

Właściwość window.location.href zwraca adres URL bieżącej strony.

document.getElementById("root").innerHTML = "The full URL of this page is:<br>" + window.location.href;
<!DOCTYPE html>
<html>

<body>
  <h2>JavaScript</h2>
  <h3>The window.location.href</h3>
  <p id="root"></p>
</body>

</html>

Po prostu nieźle wspomnieć o nich również:

Jeśli potrzebujesz względnej ścieżki, po prostu użyj window.location.pathname;

A jeśli chcesz uzyskać nazwę hosta, możesz użyć window.location.hostname;

A jeśli potrzebujesz osobnego protokołu, po prostu rób to window.location.protocol

Także jeśli masz stronę hash tag, możesz to zrobić tak: window.location.hash

Więc window.locatation.href obsługuje wszystko naraz ... w zasadzie:

window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href;
    //true

Również za pomocą window nie jest konieczne, jeśli jest już w zasięgu okna ...

W takim przypadku możesz użyć:

location.protocol

location.hostname

location.pathname

location.hash

location.href

Get the current URL with JavaScript


13
2017-12-19 12:58





var currentPageUrlIs = "";
if (typeof this.href != "undefined") {
       currentPageUrlIs = this.href.toString().toLowerCase(); 
}else{ 
       currentPageUrlIs = document.location.toString().toLowerCase();
}

Powyższy kod również może pomóc komuś


9
2017-09-05 23:07



Zastosowałeś metodę .toLowerCase () do adresu URL, który faktycznie ją zmienia. Niektóre serwery uwzględniają wielkość liter (linux itp.) - AnthonyVO
Powinieneś używać verbosely window.href. Ten kod działa tylko w kontekście, w którym znajduje się to okno ===, ale nie zawsze tak jest, szczególnie jeśli ktoś wkleił to rozwiązanie. - Evin Ugur
To nie "niektóre" serwery uwzględniają wielkość liter. To NAJBARDZIEJ serwery. Zgadzam się z AnthonyVO: zmiana adresu URL jest bardzo złym pomysłem. - mivk
Nie możesz doLowerCase () URL z pewnością go nie złamać !!! Jeśli adres URL to http://www.server.com/path/to/Script.php?option=A1B2C3, jeśli system plików rozróżnia wielkość liter (Linux / Unix), nie jest konieczne, aby Script.php i script.php były takie same. I nawet jeśli nie jest rozróżniana wielkość liter (Windows, niektóre Mac OS), ?option=A1B2C3 nie jest taki sam ?option=a1b2c3, lub nawet ?Option=A1B2C3. Tylko serwer nie uwzględnia wielkości liter: www.server.com lub www.SeRvEr.cOm są takie same. - FrancescoMM