Réponses:
Vous n'avez pas besoin de jQuery pour cela, car un simple javascript suffira:
alert(document.domain);
Voyez-le en action:
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);
Pour plus de valeurs liées au domaine, consultez les propriétés de window.location
online. Vous pouvez trouver que location.host
c'est une meilleure option, car son contenu peut différer de document.domain
. Par exemple, l'URL http://192.168.1.80:8080
n'aura que l'adresse IP dans document.domain
, mais à la fois l'adresse IP et le numéro de port dans location.host
.
window.location.host
(comme Bibby l'a publié). Je viens de corriger un bug où document.domain
était défini sur le domaine racine au lieu du sous-domaine.
document.location.origin
renvoie undefined
.
ÉDITER:
Si vous n'avez pas besoin de prendre en charge IE10, vous pouvez simplement utiliser: document.location.origin
Réponse originale, si vous avez besoin d'un support hérité
Vous pouvez obtenir tout cela et plus encore en inspectant l'objet de localisation:
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:"
}
alors:
location.host
serait le domaine, dans ce cas stackoverflow.com. Pour la première partie complète de l'url, vous pouvez utiliser:
location.protocol + "//" + location.host
qui dans ce cas serait http://stackoverflow.com
Aucun jQuery requis.
document.location.origin
ce qui aboutira à https://stackoverflow.com . Cette méthode comprend le protocole approprié
Si vous avez besoin de string, comme moi, utilisez cette fonction - cela fonctionne vraiment.
function getHost(url)
{
var a = document.createElement('a');
a.href = url;
return a.hostname;
}
Mais notez que s'il y a un sous-domaine (par exemple www.) Dans l'URL, il sera renvoyé avec le nom d'hôte. Inversement, s'il n'y a pas de sous-domaine, le nom d'hôte n'en aura pas non plus.
getHost('http://www.google.com') == 'google.com'
alors que ce serait vrai:getHost('http://google.com') == 'google.com'
Vous pouvez utiliser les codes ci-dessous pour obtenir différents paramètres de l'URL actuelle
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 n'est pas nécessaire, utilisez du javascript simple:
document.domain
var part = location.hostname.split('.');
var subdomains = part.shift();
var upperleveldomains = part.join('.');
domaine de second niveau, vous pouvez utiliser
var sleveldomain = parts.slice(-2).join('.');
vérifie ça
alert(window.location.hostname);
cela renverra le nom d'hôte comme www.domaine.com
pour autant que je vois, personne n'a posté la solution jquery mais le code javascript natif.
Vous devez passer l'url sous forme de chaîne et il obtiendra l'hôte sans utiliser de 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