Відповіді:
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";проти короткої версії цього 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
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"