주어진 URL에서 전체 프로토콜, 도메인 및 포트를 추출해야합니다. 예를 들면 다음과 같습니다.
https://localhost:8181/ContactUs-1.0/contact?lang=it&report_type=consumer
>>>
https://localhost:8181
답변
먼저 현재 주소를 얻으십시오
var url = window.location.href
그런 다음 해당 문자열을 구문 분석하십시오.
var arr = url.split("/");
귀하의 URL은 다음과 같습니다
var result = arr[0] + "//" + arr[2]
도움이 되었기를 바랍니다
답변
var full = location.protocol+'//'+location.hostname+(location.port ? ':'+location.port: '');
답변
이 답변 중 어느 것도 질문을 완전히 다루지 않는 것 같습니다.이 페이지는 특히 현재 페이지의 URL이 아닌 임의의 URL을 요구합니다.
방법 1 : URL API 사용 (캐비티 : IE11 지원 안 함)
URL API를 사용할 수 있습니다 (IE11에서는 지원되지 않지만 다른 곳에서는 사용 가능 ).
또한 검색 매개 변수에 쉽게 액세스 할 수 있습니다 . 또 다른 보너스 : DOM에 의존하지 않기 때문에 웹 워커에서 사용할 수 있습니다.
const url = new URL('http://example.com:12345/blog/foo/bar?startIndex=1&pageSize=10');
방법 2 (구식) : DOM에서 브라우저의 내장 구문 분석기 사용
구형 브라우저에서도 작동하려면 이것을 사용하십시오.
// Create an anchor element (note: no need to append this element to the document)
const url = document.createElement('a');
// Set href to any path
url.setAttribute('href', 'http://example.com:12345/blog/foo/bar?startIndex=1&pageSize=10');
그게 다야!
브라우저의 내장 파서가 이미 작업을 완료했습니다. 이제 필요한 부분 만 잡을 수 있습니다 (위의 두 가지 방법 모두에서 작동 함).
// Get any piece of the url you're interested in
url.hostname; // 'example.com'
url.port; // 12345
url.search; // '?startIndex=1&pageSize=10'
url.pathname; // '/blog/foo/bar'
url.protocol; // 'http:'
보너스 : 검색 매개 변수
‘? startIndex = 1 & pageSize = 10’자체만으로는 사용할 수 없으므로 검색 URL 매개 변수를 분리 할 수도 있습니다.
위의 방법 1 (URL API)을 사용한 경우 searchParams 게터를 사용하면됩니다.
url.searchParams.get('startIndex'); // '1'
또는 모든 매개 변수를 얻으려면 :
function searchParamsToObj(searchParams) {
const paramsMap = Array
.from(url.searchParams)
.reduce((params, [key, val]) => params.set(key, val), new Map());
return Object.fromEntries(paramsMap);
}
searchParamsToObj(url.searchParams);
// -> { startIndex: '1', pageSize: '10' }
방법 2 (구식)를 사용한 경우 다음과 같이 사용할 수 있습니다.
// Simple object output (note: does NOT preserve duplicate keys).
var params = url.search.substr(1); // remove '?' prefix
params
.split('&')
.reduce((accum, keyval) => {
const [key, val] = keyval.split('=');
accum[key] = val;
return accum;
}, {});
// -> { startIndex: '1', pageSize: '10' }
답변
어떤 이유로 든 모든 대답은 모두 과잉입니다. 이것이 전부입니다 :
window.location.origin
자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/API/window.location#Properties 에서 확인할 수 있습니다.
답변
이미 언급했듯이 아직 완전히 지원되지는 window.location.origin
않지만 사용하거나 사용할 새 변수를 만드는 대신 변수를 확인하고 설정하지 않은 경우 선호합니다.
예를 들어;
if (!window.location.origin) {
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: '');
}
나는 실제로 이것에 대해 몇 달 전에 썼다. window.location.origin에 대한 픽스
답변
주최자
var url = window.location.host;
보고 localhost:2679
호스트 이름
var url = window.location.hostname;
보고 localhost
답변
window.location.origin
동일하게 충분합니다.