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.