Respostas:
var host = window.location.hostname;
ou possivelmente
var host = "http://"+window.location.hostname;
ou se você gosta de concatenação
var protocol = location.protocol;
var slashes = protocol.concat("//");
var host = slashes.concat(window.location.hostname);
httpembora. Use o protocolo relativo. Pode ser mais apropriado do que um código embutido.
concat. No exemplo var a = 1 + 2 + " should be 12";vs a versão concat disso var a = "".concat(1).concat(2).concat(" should be 12");. O uso da concat vai lhe poupar muitos problemas, +é para o cálculo, não para a concatenação.
hostnamedará apenas domínio e hosttambém fornecerá porta. Esta é uma excelente mini ferramenta para ver o link anatomia bl.ocks.org/abernier/3070589
Para obter o nome do host: location.hostname
Mas seu exemplo também está procurando o esquema, então location.originparece fazer o que você deseja no Chrome, mas não é mencionado nos documentos do Mozdev. Você pode construí-lo com
location.protocol + '//' + location.hostname
Se você quiser o número da porta também (para quando não for 80), então:
location.protocol + '//' + location.host
Você pode obter o protocolo, host e porta usando este:
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 a compatibilidade do navegador é da Mozilla Developer Network
let path = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;
Dependendo das suas necessidades, você pode usar uma das window.locationpropriedades. Na sua pergunta, você está perguntando sobre o host , que pode ser recuperado usando window.location.hostname(por exemplo www.example.com). No seu exemplo, você está mostrando algo chamado origem , que pode ser recuperado usando window.location.origin(por exemplo http://www.example.com).
var path = window.location.origin + "/";
//result = "http://localhost:60470/"
Eu gosto deste dependendo do propósito
window.location.href.split("/")[2] == "localhost:17000" //always domain + port
Você pode aplicá-lo em qualquer string de URL
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"
Remoção de protocolo, domínio e caminho da string de URL (caminho relativo)
var arr = url.split("/");
if (arr.length>3)
"/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"