Risposte:
Non hai bisogno di jQuery per questo, in quanto basterà un semplice javascript:
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 relativi al dominio, 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 document.domain
, ma sia l'indirizzo IP sia il numero di porta location.host
.
window.location.host
(come pubblicato da Bibby). Ho appena corretto un bug in cui document.domain
veniva impostato il dominio principale anziché il sottodominio.
document.location.origin
ritorna undefined
.
MODIFICARE:
Se non hai bisogno di supportare IE10, puoi semplicemente usare: document.location.origin
Risposta originale, se hai bisogno di supporto legacy
Puoi ottenere tutto questo e altro ispezionando l'oggetto location:
location = {
host: "stackoverflow.com",
hostname: "stackoverflow.com",
href: "http://stackoverflow.com/questions/2300771/jquery-domain-get-url",
pathname: "/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 dell'URL, puoi utilizzare:
location.protocol + "//" + location.host
che in questo caso sarebbe http://stackoverflow.com
Non è richiesto jQuery.
document.location.origin
quale risulterà su https://stackoverflow.com . Questo metodo include il protocollo appropriato
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;
}
Tuttavia, se nell'URL è presente un sottodominio (ad es. Www.) Verrà restituito con il nome host. Al contrario, se non è presente alcun sottodominio, neanche il nome host ne avrà uno.
getHost('http://www.google.com') == 'google.com'
mentre ciò sarebbe vero:getHost('http://google.com') == 'google.com'
È possibile utilizzare i codici seguenti per ottenere diversi parametri dell'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);
jQuery non è necessario, utilizzare javascript semplice:
document.domain
var part = location.hostname.split('.');
var subdomains = part.shift();
var upperleveldomains = part.join('.');
dominio di secondo livello, è possibile utilizzare
var sleveldomain = parts.slice(-2).join('.');
controllare questo
alert(window.location.hostname);
questo restituirà il nome host come www.domain.com
per quanto vedo nessuno ha pubblicato la soluzione jquery tranne il codice javascript nativo.
Devi passare l'URL come stringa e otterrà l'host senza usare regexp.
function getHostFromUrl(urlString) {
return $a = $('<a>', {
'href': urlString
}).prop('host');
}
//If url is something.domain.com this returns -> domain.com
function getDomain() {
return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
- Jamie Zawinski