parametros - Obtenga el nombre de dominio actual con Javascript(no la ruta, etc.)
obtener url actual javascript (11)
Dado que esta pregunta requiere un nombre de dominio, no un nombre de host, se debe dar una respuesta correcta.
window.location.hostname.split(''.'').slice(-2).join(''.'')
Esto también funciona para nombres de host como www.example.com .
Planeo comprar dos nombres de dominio para el mismo sitio. Dependiendo de qué dominio se use, planeo proporcionar datos ligeramente diferentes en la página. ¿Hay alguna forma de que detecte el nombre de dominio real desde el que se carga la página para saber a qué cambiar mi contenido?
He buscado cosas como esta pero la mayoría no funciona como quiero.
Por ejemplo cuando se usa
document.write(document.location)
en JSFiddle regresa
http://fiddle.jshell.net/_display/
es decir, el camino real o lo que sea eso.
Me imagino que debería ser tan simple como esto:
url.split("/")[2]
Puede obtenerlo fácilmente desde el objeto de ubicación en JavaScript:
Por ejemplo, la URL de esta página es:
http://www..com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc
Entonces podemos obtener el dominio exacto con las siguientes propiedades del objeto de ubicación:
location.host = "www..com"
location.protocol= "http:"
puedes hacer el dominio completo con:
location.protocol + "//" + location.host
Que en este ejemplo devuelve http://www..com
Además de esto, podemos obtener la URL completa y también la ruta con otras propiedades del objeto de ubicación:
location.href= "http://www..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"
Qué tal si:
window.location.hostname
El objeto de location
realidad tiene una serie de atributos que hacen referencia a diferentes partes de la URL
Si desea obtener el nombre de dominio en JavaScript, simplemente use el siguiente código:
var domain_name = document.location.hostname;
alert(domain_name);
Si necesita la ruta de la URL de la página web para poder acceder a la ruta de la URL web, use este ejemplo:
var url = document.URL;
alert(url);
o puedes ver esta guía
Si desea un origen de dominio completo, puede usar esto:
document.location.origin
Y si desea obtener solo el dominio, use simplemente esto:
document.location.hostname
Pero tiene otras opciones, eche un vistazo a las propiedades en:
document.location
Si no está interesado en el nombre de host (por ejemplo, www.beta.example.com
), sino en el nombre de dominio (por ejemplo, example.com
), esto funciona para nombres de host válidos:
function getDomainName(hostName)
{
return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}
Si solo está interesado en el nombre de dominio y desea ignorar el subdominio, debe analizarlo fuera del host
y del hostname
.
El siguiente código hace esto:
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;
}
Utilizar
document.write(document.location.hostname)
window.location
tiene un montón de propiedades. Mira MDN para ver una lista de ellos.
para mi caso, la mejor coincidencia es window.location.origin
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;
}
Ejemplos
- getDomain ('' http://www.example.com ''); // example.com
- getDomain (''www.example.com''); // example.com
- getDomain ('' http://blog.example.com '', verdadero); // blog.example.com
- getDomain (location.href); // ..
La versión anterior obtenía el dominio completo (incluido el subdominio). Ahora determina el dominio correcto según la preferencia. De modo que cuando se proporciona un segundo argumento como verdadero, incluirá el subdominio; de lo contrario, solo devuelve el "dominio principal".