[javascript] Javascript로 현재 도메인 이름 얻기 (경로 등이 아님)

같은 사이트에 두 개의 도메인 이름을 구매할 계획입니다. 사용되는 도메인에 따라 페이지에서 약간 다른 데이터를 제공 할 계획입니다. 내 페이지를로드하는 실제 도메인 이름을 감지하여 내용을 어떻게 변경해야하는지 알 수있는 방법이 있습니까?

나는 이런 것들을 둘러 보았지만 대부분 내가 원하는 방식으로 작동하지 않습니다.

예를 들어

document.write(document.location)

JSFiddle 그것은 반환

http://fiddle.jshell.net/_display/

즉, 실제 경로 또는 그 무엇이든.



답변

어때요 :

window.location.hostname

location객체는 실제로이 속성의 수 URL의 다른 부분을 언급을


답변

스크립트에서 실행하십시오 : 경로 : 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;
}

이전 버전은 전체 도메인 (하위 도메인 포함)을 가져 왔습니다. 이제 선호도에 따라 올바른 도메인을 결정합니다. 따라서 두 번째 인수가 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;
}

http://jsfiddle.net/5U366/4/


답변

이 질문은 호스트 이름이 아닌 도메인 이름을 요구하므로 정답은

window.location.hostname.split('.').slice(-2).join('.')

www.example.com 과 같은 호스트 이름에서도 작동합니다 .