[javascript] Javascript로 현재 도메인 이름 얻기 (경로 등이 아님)
같은 사이트에 두 개의 도메인 이름을 구매할 계획입니다. 사용되는 도메인에 따라 페이지에서 약간 다른 데이터를 제공 할 계획입니다. 내 페이지를로드하는 실제 도메인 이름을 감지하여 내용을 어떻게 변경해야하는지 알 수있는 방법이 있습니까?
나는 이런 것들을 둘러 보았지만 대부분 내가 원하는 방식으로 작동하지 않습니다.
예를 들어
document.write(document.location)
에 JSFiddle 그것은 반환
http://fiddle.jshell.net/_display/
즉, 실제 경로 또는 그 무엇이든.
답변
답변
스크립트에서 실행하십시오 : 경로 : http : // localhost : 4200 / landing? query = 1 # 2
console.log(window.location.hash)
위치는 다음 값을 갖습니다.
window.location.hash: "#2"
window.location.host: "localhost:4200"
window.location.hostname: "localhost"
window.location.href: "http://localhost:4200/landing?query=1#2"
window.location.origin: "http://localhost:4200"
window.location.pathname: "/landing"
window.location.port: "4200"
window.location.protocol: "http:"
window.location.search: "?query=1"
답변
호스트 이름 (예 :)에 관심이 없지만 www.beta.example.com
도메인 이름 (예 example.com
:)에 관심이있는 경우 유효한 호스트 이름에 적용됩니다.
function getDomainName(hostName)
{
return hostName.substring(hostName.lastIndexOf(".", hostName.lastIndexOf(".") - 1) + 1);
}
답변
function getDomain(url, subdomain) {
subdomain = subdomain || false;
url = url.replace(/(https?:\/\/)?(www.)?/i, '');
if (!subdomain) {
url = url.split('.');
url = url.slice(url.length - 2).join('.');
}
if (url.indexOf('/') !== -1) {
return url.split('/')[0];
}
return url;
}
예
- getDomain ( ‘ http://www.example.com ‘); // example.com
- getDomain ( ‘www.example.com’); // example.com
- getDomain ( ‘ http://blog.example.com ‘, true); // blog.example.com
- getDomain (location.href); // ..
이전 버전은 전체 도메인 (하위 도메인 포함)을 가져 왔습니다. 이제 선호도에 따라 올바른 도메인을 결정합니다. 따라서 두 번째 인수가 true로 제공되면 하위 도메인이 포함되고 그렇지 않으면 ‘주 도메인’만 반환합니다
답변
Javascript의 위치 객체에서 쉽게 얻을 수 있습니다.
예를 들어이 페이지의 URL은 다음과 같습니다.
http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc
그런 다음 location 객체의 다음 속성을 사용하여 정확한 도메인을 얻을 수 있습니다.
location.host = "www.stackoverflow.com"
location.protocol= "http:"
다음을 사용하여 전체 도메인을 만들 수 있습니다.
location.protocol + "//" + location.host
이 예에서는 http://www.stackoverflow.com
이 외에도 전체 URL과 위치 객체의 다른 속성을 가진 경로를 얻을 수 있습니다.
location.href= "http://www.stackoverflow.com/questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"
location.pathname= "questions/11401897/get-the-current-domain-name-with-javascript-not-the-path-etc"
답변
당신은 도메인 이름에 관심이있는 다음 하위 도메인을 무시하기를 원한다면 당신은의를 구문 분석해야 host
하고 hostname
.
다음 코드가이를 수행합니다.
var firstDot = window.location.hostname.indexOf('.');
var tld = ".net";
var isSubdomain = firstDot < window.location.hostname.indexOf(tld);
var domain;
if (isSubdomain) {
domain = window.location.hostname.substring(firstDot == -1 ? 0 : firstDot + 1);
}
else {
domain = window.location.hostname;
}
답변
이 질문은 호스트 이름이 아닌 도메인 이름을 요구하므로 정답은
window.location.hostname.split('.').slice(-2).join('.')
www.example.com 과 같은 호스트 이름에서도 작동합니다 .