424 votes

Obtenez le nom de domaine actuel avec Javascript (pas le chemin, etc.)

J'ai l'intention sur l'achat de deux noms de domaine pour le même site. En fonction dont le domaine est utilisé j'ai l'intention de fournir légèrement différentes données sur la page. Est-il un moyen pour moi de détecter le nom de domaine réel que le chargement de la page de sorte que je sais de quoi changer mon contenu?

J'ai regardé autour pour des trucs comme ça, mais la plupart ne fonctionne pas de la façon dont je veux.

Par exemple lors de l'utilisation de

document.write(document.location)

sur JSFiddle il retourne

http://fiddle.jshell.net/_display/

c'est à dire le chemin d'accès réel ou quelle qu'elle soit.

692voto

Gareth Points 42402

Que diriez-vous:

 window.location.host
 

L'objet location a en réalité un certain nombre d'attributs faisant référence à différentes parties de l'URL

22voto

cprcrack Points 3040

Si vous n'êtes pas intéressé par le nom d'hôte (par exemple, www.beta.example.com mais par le nom de domaine (par exemple, example.com ), cela fonctionne pour les noms d'hôte valides:

 function getDomainName(hostName)
{
    return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}
 

9voto

dmck Points 3790

Si vous êtes uniquement intéressé par le nom de domaine et souhaitez ignorer le sous-domaine, vous devez l'analyser à partir de host et de hostname .

Le code suivant fait ceci:

 var firstDot = window.location.hostname.indexOf('.');
var tld = ".net";
var isSubdomain = firstDot < window.location.hostname.indexOf(tld);
var domain;

if (isSubdomain) {
    domain = window.location.hostname.substring(firstDot == -1 ? 0 : firstDot + 1);
}
else {
  domain = window.location.hostname;
}
 

http://jsfiddle.net/5U366/4/

7voto

Dancrumb Points 11918

Utilisation

 document.write(document.location.hostname)​
 

window.location a un tas de propriétés. Voir ici pour une liste d'entre eux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X