Programing

JavaScript를 사용하여 리퍼러의 도메인 / 호스트 이름을 어떻게 얻습니까?

lottogame 2020. 11. 24. 07:30
반응형

JavaScript를 사용하여 리퍼러의 도메인 / 호스트 이름을 어떻게 얻습니까?


다음을 수행하여 현재 페이지의 호스트 이름을 얻을 수 있다는 것을 알고 있습니다.

var myhostname = location.hostname;

그러나 리퍼러의 호스트 이름은 어떻게 얻습니까? 리퍼러를 얻을 수 있습니다.

var referrer = document.referrer;

그러나 불행히도 document.referrer.hostnameJavaScript 에서는 사용할 수 없습니다 . 이 값을 어떻게 얻을 수 있습니까?

이것이 유용한 예는 누군가 google.com에서 링크를 클릭하는 경우입니다. 리퍼러 (페이지 및 쿼리 문자열이 아님)에서 google.com을 검색 할 수 있기를 원합니다.


그것을 파싱함으로써. document.referrer.split( '/' );가까이 다가 갈 것입니다. 아니면 이것 좀 봐

http://blog.stevenlevithan.com/archives/parseuri

리퍼러가 브라우저에서 오는 경우 정상일 것입니다.하지만 더 강력한 구문 분석을 원할 경우를 대비합니다.


이것은 할 것입니다 :

document.referrer.split('/')[2];

예.


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

이것은 상대적으로 오래된 질문이지만 팔로워에게 도움이 될 수 있습니다.


사용할 수 있습니다 var referrer = new URL(document.referrer).hostname.

https://developer.mozilla.org/en-US/docs/Web/API/URL.URL을 참조 하십시오 .


regexp를 사용하여이 데이터를 추출 할 수 있습니다.

string.match(/^http([s]?)://([a-zA-Z0-9-_\.]+)(:[0-9]+)?/);


프로토콜이 포함되어 있지만 document.origin작동합니다. 경로 정보가 포함되어 있지 않은 Origin 헤더를 통해 작동합니다.


안녕하세요이 기능을 사용하여 도메인 이름을 가져옵니다.

function getDomain(url) {
    if (url) {
        var match = /(?:https?:\/\/)?(?:\w+:\/)?[^:?#\/\s]*?([^.\s]+\.(?:[a-z]{2,}|co\.uk|org\.uk|ac\.uk|org\.au|com\.au))(?:[:?#\/]|$)/gi
                .exec(url);
        return match ? match[1] : null;
    } else
        return null;
}

참고 URL : https://stackoverflow.com/questions/3420031/how-do-i-get-the-referrers-domain-host-name-using-javascript

반응형