2010-02-20 16 views

risposta

296

Non avete bisogno di jQuery per questo, come semplice javascript sarà sufficiente:

alert(document.domain); 

Guardalo in azione:

console.log("Output;"); 
 
console.log(location.hostname); 
 
console.log(document.domain); 
 
alert(window.location.hostname) 
 

 
console.log("document.URL : "+document.URL); 
 
console.log("document.location.href : "+document.location.href); 
 
console.log("document.location.origin : "+document.location.origin); 
 
console.log("document.location.hostname : "+document.location.hostname); 
 
console.log("document.location.host : "+document.location.host); 
 
console.log("document.location.pathname : "+document.location.pathname);

Per ulteriori valori di dominio correlati , controlla le proprietà di window.location online. Potresti scoprire che location.host è un'opzione migliore, poiché il suo contenuto potrebbe differire da document.domain. Ad esempio, l'url http://192.168.1.80:8080 avrà solo l'indirizzo ip in document.domain, ma sia l'indirizzo ip che il numero di porta in location.host.

+1

Si tratta di una buona pratica? –

+7

@ rob.alarcon È una [raccomandazione W3C] (http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-2250147) e ha un ampio supporto tra i browser, vecchi e nuovo. L'unico problema che conosco è che alcuni browser ([come Firefox] (https://developer.mozilla.org/en-US/docs/DOM/document.domain#Notes)) ti permetteranno di scrivere su questa proprietà (readonly per le specifiche) purché il nuovo valore sia un sottodominio del dominio originale. – Sampson

+4

In realtà raccomando di usare 'window.location.host' (come postato su bibby). Ho appena corretto un errore in cui 'document.domain' veniva impostato sul dominio principale invece del sottodominio. –

33

Simile alla risposta prima che ci si è

location.host 

La posizione globale ha fatti più divertenti su l'URL corrente pure. (Protocollo, host, la porta, percorso, di ricerca, hash)

20

Se hai bisogno di una stringa, come me, usa questa funzione - funziona davvero.

function getHost(url) 
{ 
    var a = document.createElement('a'); 
    a.href = url; 
    return a.hostname; 
} 

Ma nota, se v'è un sottodominio (ad esempio www.) Nell'URL otterrà restituito con il nome host. Viceversa, se non esiste alcun sottodominio, il nome host non ne avrà uno neanche.

+0

Potrebbe @Vova Popov (o qualcuno) chiarire l'ultima frase? "www. ar no www."?!? –

+2

Sta dicendo che a.hostname restituirà www. fa parte del tuo dominio. Quindi, in altre parole, questo sarebbe falso: 'getHost ('http://www.google.com') == 'google.com'' mentre questo sarebbe vero:' getHost (' http://google.com ') ==' google.com ' – Milimetric

5

jQuery non è necessario, utilizzare semplici javascript:

document.domain 
-1
//If url is something.domain.com this returns -> domain.com 
function getDomain() { 
    return window.location.hostname.replace(/([a-z]+.)/,""); 
} 
-3
//If url is something.domain.com this returns -> domain.com 
function getDomain() { 
    return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,""); 
} 
+3

ma se l'url non ha già il prefisso, rimuoverà il nome del dominio .. Esempio: "stackoveflow.com" diventerà "com" – Filipiz

+0

'Alcune persone, di fronte con un problema, pensa "lo so, userò le espressioni regolari". Ora hanno due problemi. - Jamie Zawinski – msangel

106

si può ottenere tutto questo e altro ancora ispezionando l'oggetto posizione:

location = { 
    host: "stackoverflow.com", 
    hostname: "stackoverflow.com", 
    href: "http://stackoverflow.com/questions/2300771/jquery-domain-get-url", 
    pathname: "https://stackoverflow.com/questions/2300771/jquery-domain-get-url", 
    port: "", 
    protocol: "http:" 
} 

così:

location.host 

sarebbe il dominio, in questo caso stackoverflow.com. Per la prima parte completa l'URL, è possibile utilizzare:

location.protocol + "//" + location.host 

che in questo caso sarebbe http://stackoverflow.com

No jQuery richiesto.

+0

related http://stackoverflow.com/questions/6549117/whats-the-difference-between-window-location-host-and-window-location-hostname –

0

controllo questo

alert(window.location.hostname);

questo tornerà nome host come www.domain.com

3

document.baseURI fornisce il dominio + porta. Viene utilizzato se un tag immagine utilizza un parente anziché un percorso assoluto. Probabilmente già risolto, ma potrebbe essere utile per altri ragazzi.

8

È possibile utilizzare i codici di seguito per ottenere diversi parametri della URL corrente

alert("document.URL : "+document.URL); 
alert("document.location.href : "+document.location.href); 
alert("document.location.origin : "+document.location.origin); 
alert("document.location.hostname : "+document.location.hostname); 
alert("document.location.host : "+document.location.host); 
alert("document.location.pathname : "+document.location.pathname); 
+0

In action: http : //jsfiddle.net/qtjk3bzd/ – eddyparkinson

+0

c'è anche un modo per ottenere l'host dove è ospitato il file js al posto del documento? ATM. sto manipolando il lato file js del server per ottenere questa stringa "connessione" che funziona ma sembra inefficiante poiché preferirei un file js statico. – yellowsir

2
var part = location.hostname.split('.'); 
var subdomains = part.shift(); 
var upperleveldomains = part.join('.'); 

di secondo livello di dominio, si potrebbe utilizzare

var sleveldomain = parts.slice(-2).join('.'); 
Problemi correlati