jquery, dominio, obtener URL


Respuestas:


335

No necesita jQuery para esto, ya que bastará con javascript simple:

alert(document.domain);

Véalo 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 obtener más valores relacionados con el dominio, consulte las propiedades de en window.locationlínea. Es posible que esa location.hostsea ​​una mejor opción, ya que su contenido puede diferir document.domain. Por ejemplo, la url http://192.168.1.80:8080solo tendrá la dirección IP document.domain, pero tanto la dirección IP como el número de puerto location.host.


77
@ rob.alarcon Es una recomendación del W3C y tiene un soporte muy amplio entre los navegadores, antiguos y nuevos. El único problema que conozco es que algunos navegadores ( como Firefox ) le permitirán escribir en esta propiedad (solo según la especificación) siempre que el nuevo valor sea un subdominio del dominio original.
Sampson

44
En realidad, recomendaría usar window.location.host(como Bibby publicó). Acabo de corregir un error que document.domainse estaba configurando en el dominio raíz en lugar del subdominio.
Derek Morrison

En IE11 document.location.originvuelve undefined.
TimothyBuktu

113

EDITAR:

Si no necesita admitir IE10, simplemente puede usar: document.location.origin

Respuesta original, si necesita soporte heredado

Puede obtener todo esto y más inspeccionando el objeto de ubicación:

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:"
}

entonces:

location.host 

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

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

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

No se requiere jQuery.



@ Para la url completa, ¿por qué no usar la document.location.originque dará como resultado https://stackoverflow.com ? Este método incluye el protocolo apropiado
Nathileo

33

Similar a la respuesta antes de que haya

location.host

La ubicación global también tiene datos más divertidos sobre la URL actual. (protocolo, host, puerto, ruta, búsqueda, hash)


20

Si necesita de una cadena, 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 que si hay un subdominio (por ejemplo, www.) En la URL, se devolverá con el nombre de host. Por el contrario, si no hay subdominio, el nombre de host tampoco tendrá uno.


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

2
Él 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'
Milimétrico

9

Puede usar los siguientes códigos 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);

¿hay también una manera de obtener el host donde está alojado 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

6

jQuery no es necesario, use javascript simple:

document.domain

tal vez no sea necesario, pero diciendo eso no estás respondiendo la pregunta
Emiliano

Sí, no soy un robot que responde la pregunta literalmente. Respondí la pregunta pragmáticamente sabiendo cuál era el objetivo final y que no necesita jQuery para alcanzar el objetivo.
Adam

Entiendo, pero ese tipo de respuesta no está completa, si quieres puedes dar una mejor respuesta
Emiliano

3

document.baseURIte da 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 chicos.


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

dominio de segundo nivel, puede usar

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

1

Mira esto

alert(window.location.hostname);

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


0

Por lo que veo, nadie publicó la solución jquery sino el código JavaScript nativo.

Debe pasar la url como una cadena y obtendrá el host sin usar regexp.

function getHostFromUrl(urlString) {
    return $a = $('<a>', {
        'href': urlString
    }).prop('host');
}

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

-4
//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

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.- Jamie Zawinski
msangel
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.