Obtém o nome de domínio actual com o Javascript (não a localização, etc.)

tenciono comprar dois nomes de domínio para o mesmo site. Dependendo de qual domínio é usado, planeio fornecer dados ligeiramente diferentes na página. Existe uma maneira para eu detectar o nome de domínio real que a página está carregando de modo que eu saiba o que mudar meu conteúdo para?

Procurei por coisas destas, mas a maior parte não funciona como eu queria.

por exemplo ao utilizar

document.write(document.location)

Em JSFiddle devolve

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

Ou seja, o verdadeiro caminho ou seja lá o que for.

Author: Gabriele Petronella, 2012-07-09

11 answers

Que tal:

window.location.hostname

O objecto location tem realmente um número de atributos referindo-se a diferentes partes do URL

 301
Author: Gareth, 2016-03-14 15:23:17

Se não estiver interessado no nome da máquina (por exemplo www.beta.example.com) mas no nome do domínio (por exemplo example.com), isto funciona para nomes de máquinas válidos:

function getDomainName(hostName)
{
    return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}
 23
Author: cprcrack, 2015-06-03 16:11:20
function getDomain(url, subdomain) {
    subdomain = subdomain || false;

    url = url.replace(/(https?:\/\/)?(www.)?/i, '');

    if (!subdomain) {
        url = url.split('.');

        url = url.slice(url.length - 2).join('.');
    }

    if (url.indexOf('/') !== -1) {
        return url.split('/')[0];
    }

    return url;
}

Exemplos

    GetDomain ('[8]} http://www.example.com'); // example.com GetDomain("www.example.com"); / / example.com GetDomain ('[14]} http://blog.example.com ', true); / / blog.example.com GetDomain (localização.href);//..

a versão anterior estava ficando domínio completo (incluindo subdomain). Agora determina o domínio certo dependendo da preferência. De modo que quando um segundo argumento é fornecido como verdadeiro ele irá incluir o subdomínio, caso contrário ele retorna apenas o 'domínio principal'

 13
Author: adelineu, 2016-07-18 11:24:44

Se você só está interessado no nome de domínio e quer ignorar o subdomínio, então você precisa analisá-lo para fora de host e hostname.

O seguinte código Faz isto:

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/

 7
Author: dmck, 2012-07-09 19:53:05

Utilizar

document.write(document.location.hostname)​

window.location tem um monte de propriedades. Veja aqui para uma lista deles.

 6
Author: Dancrumb, 2012-07-09 19:38:23

Você pode obtê-lo a partir de objeto de localização em Javascript facilmente:

Por exemplo, o URL desta página é:

http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc

Então podemos obter o domínio exacto com as seguintes propriedades do objecto de localização:

location.host = "www.stackoverflow.com"
location.protocol= "http:"

Você pode fazer o domínio completo com:

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

Que neste exemplo devolve http://www.stackoverflow.com

Se adicionarmos isto, podemos obter o URL completo e também o caminho com outras propriedades do objecto de localização:

location.href= "http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"    
location.pathname= "questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"
 6
Author: Iman Sedighi, 2017-01-10 14:00:45

Se desejar uma origem de domínio completo, pode usar isto:

document.location.origin

E se você deseja obter apenas o domínio, use você pode apenas isso:

document.location.hostname

Mas você tem outras opções, dê uma olhada nas propriedades em:

document.location
 4
Author: Ricardo França, 2016-06-25 14:10:39

Uma vez que esta pergunta pede o nome do domínio, NÃO o nome da máquina, uma resposta correcta deve ser

window.location.hostname.split('.').slice(-2).join('.')

Isto funciona para nomes de máquinas como www.example.com também.

 4
Author: Ethan, 2016-12-11 05:18:30

Se quiser obter o nome de domínio em JavaScript, basta usar o seguinte código:

var domain_name = document.location.hostname;
alert(domain_name);

Se precisar da localização do URL da página web para poder aceder à localização do URL da web use este exemplo:

var url = document.URL;
alert(url);

Ou pode ver este guia

 2
Author: ujjal, 2017-11-06 11:55:14
Para o meu caso, a melhor combinação é a janela.localizacao.origem
 1
Author: Pavel Poberezhnyi, 2017-11-26 15:07:46
Acho que deve ser tão simples como isto.

url.split("/")[2]

 0
Author: Alexandru Mihalcea, 2017-09-22 11:38:15