Dado que estoy en la siguiente página:
http://www.webmail.com/pages/home.aspx
¿Cómo puedo recuperar el nombre de host ( "http://www.webmail.com"
) con JavaScript?
fuente
Dado que estoy en la siguiente página:
http://www.webmail.com/pages/home.aspx
¿Cómo puedo recuperar el nombre de host ( "http://www.webmail.com"
) con JavaScript?
var host = window.location.hostname;
o posiblemente
var host = "http://"+window.location.hostname;
o si te gusta la concatenación
var protocol = location.protocol;
var slashes = protocol.concat("//");
var host = slashes.concat(window.location.hostname);
http
sin embargo Usa el protocolo relativo. Podría ser más apropiado que uno de codificación rígida.
concat
. En el ejemplo var a = 1 + 2 + " should be 12";
vs la versión concat de esto var a = "".concat(1).concat(2).concat(" should be 12");
. El uso de concat le ahorrará muchos problemas +
para el cálculo, no para la concatenación.
hostname
solo dará dominio y host
proporcionará puerto también. Esta es una gran mini herramienta para ver la anatomía del enlace bl.ocks.org/abernier/3070589
Para obtener el nombre de host: location.hostname
Pero su ejemplo también busca el esquema, por lo que location.origin
parece hacer lo que desea en Chrome, pero no se menciona en los documentos de Mozdev. Puedes construirlo con
location.protocol + '//' + location.hostname
Si también desea el número de puerto (para cuando no es 80), entonces:
location.protocol + '//' + location.host
Puede obtener el protocolo, el host y el puerto con esto:
window.location.origin
| Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|----------------------------------|-------|-----------------|-------------------|-------|--------------------------------------------|
| (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| 30.0.1599.101 (possibly earlier) | ? | 21.0 (21.0) | 11 | ? | 7 (possibly earlier, see webkit bug 46558) |
| Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
|----------------------------------|-------|------------------------|----------|--------------|--------------------------------------------|
| (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| 30.0.1599.101 (possibly earlier) | ? | 21.0 (21.0) | ? | ? | 7 (possibly earlier, see webkit bug 46558) |
Toda la compatibilidad del navegador es de Mozilla Developer Network
let path = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;
Esto debería funcionar:
window.location.hostname
host
si también necesita puerto
Dependiendo de sus necesidades, puede usar una de las window.location
propiedades. En su pregunta, está preguntando sobre el host , que puede recuperarse usando window.location.hostname
(por ejemplo www.example.com
). En su ejemplo, está mostrando algo que se llama origen , que puede recuperarse usando window.location.origin
(por ejemplo http://www.example.com
).
var path = window.location.origin + "/";
//result = "http://localhost:60470/"
Me gusta este dependiendo del propósito
window.location.href.split("/")[2] == "localhost:17000" //always domain + port
Puedes aplicarlo en cualquier url-string
var url = "http://localhost:17000/sub1/sub2/mypage.html?q=12";
url.split("/")[2] == "localhost:17000"
url.split("/")[url.split("/").length-1] == "mypage.html?q=12"
Eliminar el protocolo, el dominio y la ruta de url-string (ruta relativa)
var arr = url.split("/");
if (arr.length>3)
"/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"