jquery, 도메인, URL 얻기


140

jquery로 도메인 이름을 얻으려면 어떻게해야합니까 ??

답변:


335

간단한 자바 스크립트로 충분하므로 jQuery가 필요하지 않습니다.

alert(document.domain);

실제로보기 :

console.log("Output;");  
console.log(location.hostname);
console.log(document.domain);
alert(window.location.hostname)

console.log("document.URL : "+document.URL);
console.log("document.location.href : "+document.location.href);
console.log("document.location.origin : "+document.location.origin);
console.log("document.location.hostname : "+document.location.hostname);
console.log("document.location.host : "+document.location.host);
console.log("document.location.pathname : "+document.location.pathname);

추가 도메인 관련 값은 window.location온라인 속성을 확인하십시오 . location.host내용이과 다를 수 있으므로 더 나은 옵션 임을 알 수 있습니다 document.domain. 예를 들어, URL http://192.168.1.80:8080에는 ipaddress 만 document.domain있고 ipaddress와 포트 번호는 모두에 location.host있습니다.


7
@ rob.alarcon W3C 권장 사항 이며 이전 및 신규 브라우저간에 매우 광범위하게 지원됩니다. 내가 아는 유일한 문제는 Firefox와 같은 일부 브라우저 에서 새 값이 원래 도메인의 하위 도메인 인 한이 속성에 대해 사양에 따라 읽기 전용으로 쓸 수 있다는 것입니다.
Sampson

4
실제로 window.location.host(bibby 게시)를 사용하는 것이 좋습니다 . 방금 document.domain하위 도메인 대신 루트 도메인으로 설정된 버그를 수정했습니다 .
Derek Morrison

IE11에서는을 document.location.origin반환합니다 undefined.
TimothyBuktu

113

편집하다:

IE10을 지원할 필요가 없으면 간단히 다음을 사용할 수 있습니다. document.location.origin

레거시 지원이 필요한 경우 원래 답변

location 객체를 검사하여이 모든 것을 얻을 수 있습니다.

location = {
  host: "stackoverflow.com",
  hostname: "stackoverflow.com",
  href: "http://stackoverflow.com/questions/2300771/jquery-domain-get-url",
  pathname: "/questions/2300771/jquery-domain-get-url",
  port: "",
  protocol: "http:"
}

그래서:

location.host 

이 경우 도메인이됩니다 (이 경우 stackoverflow.com). URL의 첫 번째 부분은 다음을 사용할 수 있습니다.

location.protocol + "//" + location.host

이 경우 http://stackoverflow.com이됩니다.

jQuery가 필요하지 않습니다.



@ 전체 URL document.location.origin보려면 https://stackoverflow.com 을 사용 하십시오 . 이 방법에는 적절한 프로토콜이 포함됩니다
Nathileo

33

거기에 대한 답변과 비슷합니다

location.host

전 세계 위치에는 현재 URL에 대한 더 재미있는 사실이 있습니다. (프로토콜, 호스트, 포트, 경로 이름, 검색, 해시)


20

나와 같은 문자열에서 필요한 경우이 기능을 사용하십시오-실제로 작동합니다.

function getHost(url)
{
    var a = document.createElement('a');
    a.href = url;
    return a.hostname;
}

그러나 URL에 하위 도메인 (예 : www.)이 있으면 호스트 이름과 함께 반환됩니다. 반대로 하위 도메인이 없으면 호스트 이름도 없습니다.


@Vova Popov (또는 누군가)가 마지막 문장을 명확히 할 수 있습니까? "www. ar no www."?!?
랜달 쿡

2
그는 a.hostname이 www를 반환한다고 말합니다. 그것은 당신의 도메인의 일부입니다. 다시 말해, 이것은 잘못된 것입니다.getHost('http://www.google.com') == 'google.com' 반면에 이것은 사실입니다 :getHost('http://google.com') == 'google.com'
Milimetric

9

현재 URL의 다른 매개 변수를 얻으려면 아래 코드를 사용할 수 있습니다

alert("document.URL : "+document.URL);
alert("document.location.href : "+document.location.href);
alert("document.location.origin : "+document.location.origin);
alert("document.location.hostname : "+document.location.hostname);
alert("document.location.host : "+document.location.host);
alert("document.location.pathname : "+document.location.pathname);

문서 대신 js 파일이 호스팅되는 호스트를 얻는 방법도 있습니까? ATM. 나는 js 파일 서버 측을 조작 하여이 "연결"문자열을 얻지 만 정적 js 파일을 선호하기 때문에 비효율적으로 보입니다.
yellowsir

6

jQuery가 필요하지 않습니다. 간단한 자바 스크립트를 사용하십시오.

document.domain

아마 그것이 필요하지는 않지만 당신이 질문에 대답하지 않았다고 말하는 것
Emiliano

예, 나는 문자 그대로 질문에 대답하는 로봇이 아닙니다. 최종 목표가 무엇이며 목표를 달성하기 위해 jQuery가 필요하지 않다는 것을 실용적으로 질문에 대답했습니다.
Adam

나는 이해하지만 당신이 더 나은 답변을 원한다면 그런 종류의 대답은 완전하지 않습니다
Emiliano

3

document.baseURI도메인 + 포트를 제공합니다. 이미지 태그가 절대 경로 대신 상대를 사용하는 경우에 사용됩니다. 아마 이미 해결되었지만 다른 사람들에게 유용 할 수 있습니다.


2
var part = location.hostname.split('.');
var subdomains = part.shift();
var upperleveldomains = part.join('.');

두 번째 수준 도메인에서는

var sleveldomain = parts.slice(-2).join('.');

1

이것을 확인하십시오

alert(window.location.hostname);

호스트 이름이 www.domain.com으로 반환됩니다.


0

내가 아는 한, jquery 솔루션을 게시하지 않고 네이티브 자바 스크립트 코드를 게시했습니다.

URL을 문자열로 전달해야하며 정규 표현식을 사용하지 않고 호스트를 가져옵니다.

function getHostFromUrl(urlString) {
    return $a = $('<a>', {
        'href': urlString
    }).prop('host');
}

-2
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-z]+.)/,"");
}

-4
//If url is something.domain.com this returns -> domain.com
function getDomain() {
  return window.location.hostname.replace(/([a-zA-Z0-9]+.)/,"");
}

3
그러나 URL에 접두사가없는 경우 도메인 이름이 제거됩니다. 예 : "stackoveflow.com"이 "com"이 됨
Filipiz

Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
-Jamie
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.