2010-02-20 35 views

Respuesta

296

No es necesario jQuery para esto, como Javascript sencilla será suficiente:

alert(document.domain); 

Verlo en acción:

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);

Para otros valores relacionados con el dominio , consulte las propiedades de window.location en línea. Puede encontrar que location.host es una mejor opción, ya que su contenido puede diferir de document.domain. Por ejemplo, la url http://192.168.1.80:8080 tendrá solo la dirección IP en document.domain, pero tanto el número de dirección IP como el número de puerto en location.host.

+1

¿Es esta una buena práctica? –

+7

@ rob.alarcon Es una [Recomendación W3C] (http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-2250147) y tiene un soporte muy amplio entre navegadores, antiguos y nuevo. El único problema que conozco es que algunos navegadores ([como Firefox] (https://developer.mozilla.org/en-US/docs/DOM/document.domain#Notes)) te permitirán escribir en esta propiedad (solo por la especificación) siempre que el nuevo valor sea un subdominio del dominio original. – Sampson

+4

De hecho, recomendaría usar 'window.location.host' (como bibby posted). Acabo de arreglar un error donde 'document.domain' se estaba configurando en el dominio raíz en lugar del subdominio. –

33

Similar a la respuesta antes de que hay

location.host 

La ubicación global tiene más hechos divertidos acerca de la URL actual también. (Protocolo, host, puerto, nombre de ruta, búsqueda, hash)

20

Si necesita un hilo, como yo, use esta función, realmente funciona.

function getHost(url) 
{ 
    var a = document.createElement('a'); 
    a.href = url; 
    return a.hostname; 
} 

Pero tenga en cuenta, si hay un subdominio (por ejemplo www.) En la URL que obtendrá regresaron con el nombre de host. Por el contrario, si no hay un subdominio, el nombre de host tampoco tendrá ninguno.

+0

¿Podría @Vova Popov (o alguien) aclarar la última oración? "www. ar no www."?!? –

+2

Está diciendo que a.hostname devolverá el www. eso es parte de tu dominio En otras palabras, esto sería falso: 'getHost ('http://www.google.com') == 'google.com'' mientras que esto sería cierto:' getHost (' http://google.com ') ==' google.com'' – Milimetric

5

jQuery no es necesario, usar javascript simple:

document.domain 
-1
//If url is something.domain.com this returns -> domain.com 
function getDomain() { 
    return window.location.hostname.replace(/([a-z]+.)/,""); 
} 
-3
//If url is something.domain.com this returns -> domain.com 
function getDomain() { 
    return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,""); 
} 
+3

pero si la url ya no tiene el prefijo, eliminará el nombre de dominio .. Ejemplo: "stackoveflow.com" se convertirá en "com" – Filipiz

+0

'Algunas personas, cuando se enfrentan con un problema, piense "Lo sé, usaré expresiones regulares". Ahora tienen dos problemas. - Jamie Zawinski – msangel

106

usted puede conseguir todo esto y más mediante la inspección del objeto Localización:

location = { 
    host: "stackoverflow.com", 
    hostname: "stackoverflow.com", 
    href: "http://stackoverflow.com/questions/2300771/jquery-domain-get-url", 
    pathname: "https://stackoverflow.com/questions/2300771/jquery-domain-get-url", 
    port: "", 
    protocol: "http:" 
} 

manera:

location.host 

sería el dominio, en este caso stackoverflow.com. Para la primera parte completa de la URL, puede utilizar:

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

que en este caso sería http://stackoverflow.com

No se requiere jQuery.

+0

relacionado http://stackoverflow.com/questions/6549117/whats-the-difference-between-window-location-host-and-window-location-hostname –

0

cheque esta

alert(window.location.hostname);

esto devolverá el nombre de host como www.domain.com

3

document.baseURI le proporciona el dominio + puerto. Se usa si una etiqueta de imagen usa una ruta relativa en lugar de absoluta. Probablemente ya resuelto, pero podría ser útil para otros muchachos.

8

Puede utilizar los códigos de abajo para obtener diferentes parámetros de la URL actual

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); 
+0

En acción: http : //jsfiddle.net/qtjk3bzd/ – eddyparkinson

+0

¿hay también una forma de obtener el host donde se aloja el archivo js en lugar del documento? Cajero automático. Estoy manipulando el lado del servidor de archivos js para obtener esta cadena de "conexión" que funciona pero parece ineficaz ya que preferiría un archivo js estático. – yellowsir

2
var part = location.hostname.split('.'); 
var subdomains = part.shift(); 
var upperleveldomains = part.join('.'); 

de segundo nivel en el dominio, es posible utilizar

var sleveldomain = parts.slice(-2).join('.'); 
Cuestiones relacionadas