현재 페이지에서 자바 스크립트를 사용하여 호스트 URL을 얻는 방법


답변:


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

3
http그래도 지정하지 마십시오 . 상대 프로토콜을 사용하십시오. 하드 코딩보다 더 적합 할 수 있습니다.
Darth Egregious

33
대신 호스트 이름의 window.location.host 사용하거나 포트가 80이 아닌 경우 실패합니다
스테판 스타 이거

1
@MattBrowne 문자열을 생성하는 작업을 할 때 항상 사용해야한다고 말하고 싶습니다 concat. 예에서는 var a = 1 + 2 + " should be 12";이의 CONCAT 버전 대 var a = "".concat(1).concat(2).concat(" should be 12");. 연결을 사용하면 연결이 +아니라 계산에 많은 문제 가 발생 합니다.
Eric Herlitz

3
hostname도메인 만 host제공하고 포트도 제공합니다. 이 링크 해부학 볼 수있는 좋은 미니 도구입니다 bl.ocks.org/abernier/3070589을
루카스 Liesis

4
window.location.origin도 잘 작동합니다. 프로토콜과 포트가 포함되어 있습니다.
rothschild86

96

호스트 이름을 얻으려면 location.hostname

그러나 귀하의 예는 또한 계획을 찾고 있으므로 location.originChrome에서 원하는 것을하는 것처럼 보이지만 Mozdev 문서에서는 언급하지 않습니다. 당신은 그것을 구성 할 수 있습니다

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

포트 번호도 원하는 경우 (80이 아닌 경우) :

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

Chrome 4에는 Firefox 4가 없지만 보이지 않습니다. 사양에 정의되어 있습니까?
Delan Azabani

Hi .. 항구를 얻기 위해 예제는 매력처럼 작동했습니다. 감사합니다
k

FF는 21.0부터 location.origin을 지원합니다. developer.mozilla.org/en-US/docs/Web/API/Window.location
zifot

67

다음을 사용하여 프로토콜, 호스트 및 포트를 얻을 수 있습니다.

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의 것입니다


4
IE가 이것을 지원하지 않는다는 것을 언급해야합니다.
Monso

새로운 기능이며 이전 브라우저에서는 지원되지 않습니다.
kabirbaidhya

@kabirbaidhya 자세한 호환성은 어떻습니까!
Monso

좋은. 그러나 MDN 직원이 ​​브라우저 호환성 표를 업데이트하면 어떻게됩니까?이 문제는 최신 브라우저 릴리스에서 자주 발생합니다. 테이블과 동기화하려면 이것을 계속 업데이트해야 할 수도 있습니다.;).
kabirbaidhya

실제로 이것은 최신 버전이 아닌 최신 버전을 지원하는 가장 오래된 알려진 버전이며 모든 브라우저에서 이미 지원합니다. 지원되는 브라우저 중 일부에서 버전 번호를 알아낼 수있는 다른 브라우저를 포함하기로 결정한 경우에만 변경됩니다. 대부분의 최신 브라우저는 초기 릴리스에서 제공되기 때문에 다소 무섭습니다.
Monso

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


5

필요에 따라 window.location속성 중 하나를 사용할 수 있습니다 . 귀하의 질문에 당신은 (예를 들어 )를 사용하여 검색 할 수 있는 호스트 에 대해 묻습니다 . 귀하의 예에서 origin 이라는 것을 보여 주는데 , 예를 들어 ( )를 사용하여 검색 할 수 있습니다 .window.location.hostnamewww.example.comwindow.location.originhttp://www.example.com

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

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

2

나는 목적에 따라 이것을 좋아한다

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"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.