Как получить URL-адрес хоста, используя javascript с текущей страницы

Учитывая, что я нахожусь на следующей странице:

http://www.webmail.com/pages/home.aspx

Как получить имя хоста ("http://www.webmail.com") с помощью JavaScript?

Ответ 1

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);

Ответ 2

Чтобы получить имя хоста: location.hostname

Но ваш пример также ищет схему, поэтому location.origin похоже делает то, что вы хотите в Chrome, но не упоминается в документах Mozdev. Вы можете построить его с помощью

location.protocol + '//' + location.hostname

Если вы также хотите номер порта (если он не равен 80), выполните следующие действия:

location.protocol + '//' + location.host

Ответ 3

Вы можете получить протокол, хост и порт, используя это:

window.location.origin

Совместимость с браузером

Desktop

| 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

Ответ 4

Это должно работать:

window.location.hostname

Ответ 5

let path = window.location.protocol + '//' + window.location.hostname + ':' + window.location.port;

Ответ 6

Мне нравится это в зависимости от цели

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"

Ответ 7

В зависимости от ваших потребностей, вы можете использовать одно из свойств window.location. В своем вопросе вы спрашиваете о хосте, который может быть получен с помощью window.location.hostname (например, www.example.com). В вашем примере вы показываете что-то, что называется origin, которое может быть получено с помощью window.location.origin (например, http://www.example.com).

var path = window.location.origin + "/";

//result = "http://localhost:60470/"

Ответ 8

Мне нравится ответ Вадина, потому что он полностью независим. Это работает независимо от того, работаете ли вы на localhost или в домене.