Ricevi l'URL corrente con JavaScript?


Risposte:


3685

Uso:

window.location.href 

Come notato nei commenti, la riga seguente funziona, ma è disturbata per Firefox.

document.URL;

Vedi l' URL di tipo DOMString, di sola lettura .


142
In Firefox 12 la document.URLproprietà non si aggiorna dopo a window.locationa un ancoraggio (#), mentre lo window.location.hreffa. Ho messo insieme una demo live qui: jsfiddle.net/PxgKy Non ho provato altre versioni di Firefox. Nessun problema con l'utilizzo è document.URLstato riscontrato in Chrome 20 e IE9.
Telmo Marques,

88
inoltre puoi ottenere l'host e la posizione chiara: window.location.hostewindow.location.href.toString().split(window.location.host)[1]
ali youhannaei il

8
e allora cosa succede document.baseURI. Fondamentalmente ci sono 3 modi per ottenere l'URL document.baseURI, document.URL, & location.
Muhammad Umer,

20
-1: se hai una cornice, un'immagine o un modulo con name="URL"allora questa proprietà sarà ombreggiata documentsull'oggetto e il tuo codice si spezzerà. In tal caso, document.URLfarà invece riferimento al nodo DOM. Meglio usare le proprietà dell'oggetto globale come in window.location.href.
Roy Tinker,

13
"window.location.href" per la vittoria
GabrielBB,

662

Accesso alle informazioni URL

JavaScript offre molti metodi per recuperare e modificare l'URL corrente, che viene visualizzato nella barra degli indirizzi del browser. Tutti questi metodi usano l' Locationoggetto, che è una proprietà Windowdell'oggetto. È possibile creare un nuovo Locationoggetto con l'URL corrente come segue:

var currentLocation = window.location;

Struttura dell'URL di base

<protocol>//<hostname>:<port>/<pathname><search><hash>
  • protocollo: specifica il nome del protocollo da utilizzare per accedere alla risorsa su Internet. (HTTP (senza SSL) o HTTPS (con SSL))

  • nome host: il nome host specifica l'host proprietario della risorsa. Ad esempio www.stackoverflow.com,. Un server fornisce servizi utilizzando il nome dell'host.

  • porta: un numero di porta utilizzato per riconoscere un processo specifico a cui inoltrare un messaggio Internet o un altro messaggio di rete quando arriva a un server.

  • nome percorso: il percorso fornisce informazioni sulla risorsa specifica all'interno dell'host a cui il client Web desidera accedere. Ad esempio /index.html,.

  • ricerca: una stringa di query segue il componente percorso e fornisce una stringa di informazioni che la risorsa può utilizzare per qualche scopo (ad esempio, come parametri per una ricerca o come dati da elaborare).

  • hash: la parte di ancoraggio di un URL, include il segno di hash (#).

Con queste Locationproprietà dell'oggetto puoi accedere a tutti questi componenti URL e a cosa possono impostare o restituire:

  • href : l'intero URL
  • protocollo - il protocollo dell'URL
  • host : nome host e porta dell'URL
  • hostname - il nome host dell'URL
  • porta : il numero di porta utilizzato dal server per l'URL
  • nome percorso : il nome percorso dell'URL
  • cerca - la parte della query dell'URL
  • hash : la parte di ancoraggio dell'URL

Spero che tu abbia la tua risposta


7
Non sono "metodi" di window.location, ma le proprietà, e qui abbiamo un esempio : var stringPathName = window.location.pathname.
Peter Krauss,

@FabioC. Puoi rimuoverlo da substring. Tuttavia, può essere utile quando si desidera utilizzare per il reindirizzamento document.location = "/page.html";reindirizzerà alla pagina principalepage.html
FindOut_Quran il

1
Questo non risponde solo alla domanda posta. In effetti, ho cercato probabilmente circa un mese fa un buon modo per estrarre una o più parti specifiche dalla stringa URL (penso che fosse probabilmente la pagina corrente che stavo cercando di ottenere), e anche se altre domande erano più su -target, le loro risposte non erano così utili e semplici per quello scopo come questo.
Panzercrisis

1
Un breve suggerimento però: nella struttura dell'URL di base sopra descritta, c'è un posto per search, ma nell'elenco delle descrizioni di seguito, si chiama a query. Forse possono essere riconciliati o è possibile aggiungere ulteriori spiegazioni.
Panzercrisis,

1
Si chiama 'cerca' non 'query'
Apollo Data,


264

Ottiene l'URL della pagina corrente:

window.location.href

3
Nota che questa è la posizione della finestra non quella del documento.
Gumbo,

16
È la stessa cosa. L'URL corrente completo si riferisce al percorso del documento (indirizzo esterno).
Zanoni,

2
È standardizzato come document.url? (Intendo qualcosa di simile a un documento W3C)
Chendral,

documentè la radice dell'albero del documento definita dalla specifica. windowè generalmente equivalente ma potrebbe non essere in alcune strane circostanze.
broinjc,

57

OK, ottenere l' URL completo della pagina corrente è semplice utilizzando JavaScript puro. Ad esempio, prova questo codice in questa pagina:

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

La window.location.hrefproprietà restituisce l'URL della pagina corrente.

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>

Non è male menzionare anche questi:

  • se hai bisogno di un percorso relativo, usa semplicemente window.location.pathname;

  • se desideri ottenere il nome host, puoi utilizzare window.location.hostname;

  • e se è necessario ottenere il protocollo separatamente, utilizzare window.location.protocol

    • Inoltre, se la pagina ha hashtag, è possibile ottenere le cose come: window.location.hash.

Quindi window.location.hrefgestisce tutto in una volta ... sostanzialmente:

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

Anche usando window non è necessario se già nell'ambito della finestra ...

Quindi, in quel caso, puoi usare:

location.protocol

location.hostname

location.pathname

location.hash

location.href

Ottieni l'URL corrente con JavaScript


window.location.protocol + '//' + window.location.hostname + window.location.pathname + window.location.hash === window.location.href; non è sempre vero! window.location.pathname manca i parametri GET.
AssassiN,

40

Per ottenere il percorso, è possibile utilizzare:

console.log('document.location', document.location.href);
console.log('location.pathname',  window.location.pathname); // Returns path only
console.log('location.href', window.location.href); // Returns full URL


35

Apri Strumenti per gli sviluppatori , digita quanto segue nella console e premi Invio .

window.location

Es: Di seguito è riportato lo screenshot del risultato nella pagina corrente.

inserisci qui la descrizione dell'immagine

Prendi quello che ti serve da qui. :)


29

Usa: window.location.href.

Come notato sopra, document.URL non si aggiorna durante l'aggiornamento window.location. Vedi MDN .


21
  • Utilizzare window.location.hrefper ottenere l'URL completo.
  • Utilizzare window.location.pathnameper ottenere l'URL che lascia l'host.

4
window.location.pathname non include il frammento di query e hash
OMGPOP


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

Il codice sopra può anche aiutare qualcuno


2
Hai applicato .toLowerCase () all'URL che lo modifica effettivamente. Alcuni server fanno distinzione tra maiuscole e minuscole, (linux, ecc ...)
AnthonyVO,

Dovresti usare verbalmente window.href. Questo codice funziona solo in un contesto in cui questa finestra ===, tuttavia potrebbe non essere sempre il caso, soprattutto se qualcuno ha incollato questa soluzione.
deadboy,

Non sono "alcuni" i server che fanno distinzione tra maiuscole e minuscole. È la maggior parte dei server. Quindi sono d'accordo con AnthonyVO: cambiare il caso dell'URL è una pessima idea.
marzo

Non puoi LowerCase () un URL assicurandoti di non romperlo !!! Se url lo è http://www.server.com/path/to/Script.php?option=A1B2C3, se il file system fa distinzione tra maiuscole e minuscole (Linux / Unix) non necessariamente Script.php e script.php sono uguali. E anche se non fa distinzione tra maiuscole e minuscole (Windows, alcuni Mac OS), ?option=A1B2C3non è lo stesso di ?option=a1b2c3, o addirittura ?Option=A1B2C3. Solo il server non distingue tra maiuscole e minuscole: www.server.com o www.SeRvEr.cOm sono uguali.
FrancescoMM,

8

Aggiunta del risultato per un riferimento rapido

window.location;

 Location {href: "/programming/1034621/get-the-current-url-with-javascript",
 ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ, …}

document.location

  Location {href: "/programming/1034621/get-the-current-url-with-javascript", 
ancestorOrigins: DOMStringList,
 origin: "https://stackoverflow.com",
 replace: ƒ, assign: ƒ
, …}

window.location.pathname

"/questions/1034621/get-the-current-url-with-javascript"

window.location.href

"/programming/1034621/get-the-current-url-with-javascript"

location.hostname

"stackoverflow.com"

7

Per URL completo con stringhe di query:

document.location.toString().toLowerCase();

Per l'URL host:

window.location

11
Hai applicato .toLowerCase () all'URL che lo modifica effettivamente. Alcuni server fanno distinzione tra maiuscole e minuscole, (linux, ecc ...)
AnthonyVO,

Come detto, non è possibile fornire a PowerCase () un URL facendo attenzione a non romperlo !!! Se url è server.com/path/to/Script.php?option=A1B2C3 , se il file system fa distinzione tra maiuscole e minuscole (Linux / Unix), non necessariamente Script.php e script.php sono uguali. E anche se non fa distinzione tra maiuscole e minuscole (Windows, alcuni Mac OS),? Opzione = A1B2C3 non è la stessa di? Opzione = a1b2c3, o anche? Opzione = A1B2C3. Solo il server non distingue tra maiuscole e minuscole: www.server.com o www.SeRvEr.cOm sono uguali.
FrancescoMM,

Grazie AnthonyVO per averlo indicato. Possiamo usare solo document.location.toString () per ottenere l'URL completo. toLowerCase () doveva confrontare come indexOf nel tuo script.
Syed Nasir Abbas,

4

In jstl possiamo accedere al percorso URL corrente utilizzando pageContext.request.contextPath. Se si desidera effettuare una chiamata Ajax, utilizzare il seguente URL.

url = "${pageContext.request.contextPath}" + "/controller/path"

Esempio: per la pagina http://stackoverflow.com/posts/36577223questo darà http://stackoverflow.com/controller/path.


4

Il modo per ottenere l'oggetto posizione corrente è window.location .

Confronta questo con document.location, che originariamente restituiva solo l'URL corrente come stringa. Probabilmente per evitare confusione, è document.locationstato sostituito condocument.URL .

E, tutti i browser moderni eseguono il mapping document.locationawindow.location .

In realtà, per la sicurezza cross-browser, è necessario utilizzare window.locationanziché document.location.



3

La risposta di Nikhil Agrawal è ottima, basta aggiungere un piccolo esempio qui che puoi fare nella console per vedere i diversi componenti in azione:

inserisci qui la descrizione dell'immagine

Se vuoi che l'URL di base senza percorso o parametro di query (ad esempio per fare in modo che le richieste AJAX non funzionino su server di sviluppo / gestione temporanea E di produzione), window.location.originè meglio in quanto mantiene il protocollo e la porta opzionale (nello sviluppo di Django, a volte avere una porta non standard che la interrompe se si utilizza solo il nome host ecc.)


0
   location.origin+location.pathname+location.search+location.hash;

0

È possibile ottenere il collegamento completo della pagina corrente location.href e per ottenere il collegamento del controller corrente, utilizzare:

location.href.substring(0, location.href.lastIndexOf('/'));

0

Ottenere l'URL corrente con JavaScript:

  • window.location.toString ();

  • window.location.href


0

se ti riferisci a un link specifico che ha un ID questo codice può aiutarti.

$(".disapprove").click(function(){
    var id = $(this).attr("id");

    $.ajax({
        url: "<?php echo base_url('index.php/sample/page/"+id+"')?>",
        type: "post",
        success:function()
        {
            alert("The Request has been Disapproved");
            window.location.replace("http://localhost/sample/page/"+id+"");
        }
    });
});

Sto usando Ajax qui per inviare un ID e reindirizzare la pagina usando window.location.replace . basta aggiungere un attributo id=""come indicato.



-2

Innanzitutto controlla che la pagina sia caricata completamente

browser,window.location.toString();

window.location.href

quindi chiama una funzione che accetta url, variabile URL e stampa sulla console,

$(window).load(function(){
   var url = window.location.href.toString();
   var URL = document.URL;
   var wayThreeUsingJQuery = $(location).attr('href');
   console.log(url);
   console.log(URL);
   console.log(wayThreeUsingJQuery );
});
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.