Ответы:
var host = window.location.hostname;
или возможно
var host = "http://"+window.location.hostname;
или если вам нравится конкатенация
var protocol = location.protocol;
var slashes = protocol.concat("//");
var host = slashes.concat(window.location.hostname);
httpхотя. Используйте соответствующий протокол. Может быть более подходящим, чем жестко закодированный.
concat. В примере var a = 1 + 2 + " should be 12";против Concat версии этого var a = "".concat(1).concat(2).concat(" should be 12");. Использование concat избавит вас от многих трудностей +для расчета, а не для конкатенации.
hostnameдаст только домен и hostпредоставит порт также. Это отличный мини-инструмент для просмотра ссылки на анатомию bl.ocks.org/abernier/3070589
Чтобы получить имя хоста: location.hostname
Но ваш пример также ищет схему, поэтому, location.originкажется, делает то, что вы хотите в Chrome, но не упоминается в документации Mozdev. Вы можете построить это с
location.protocol + '//' + location.hostname
Если вам нужен также номер порта (если он не 80), то:
location.protocol + '//' + location.host
Вы можете получить протокол, хост и порт, используя это:
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) |
Все браузеры совместимы с Mozilla Developer Network
let path = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;
В зависимости от ваших потребностей, вы можете использовать одно из window.locationсвойств. В своем вопросе вы спрашиваете о хосте , который может быть получен с помощью window.location.hostname(например www.example.com). В вашем примере вы показываете то, что называется происхождением , которое может быть получено с помощью window.location.origin(например http://www.example.com).
var path = window.location.origin + "/";
//result = "http://localhost:60470/"
Мне нравится этот в зависимости от цели
window.location.href.split("/")[2] == "localhost:17000" //always domain + port
Вы можете применить его к любой строке 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"
Удаление протокола, домена и пути из строки URL (относительный путь)
var arr = url.split("/");
if (arr.length>3)
"/" + arr.splice(3, arr.length).join("/") == "/sub1/sub2/mypage.html?q=12"