2012-04-25 2 views
10

나는 리퍼러 URL로부터 도메인을 얻고 싶습니다. 내가 주로 얻는 리퍼러 URL을 내가 위와 같이 리퍼러 URL을 얻을 Whenver http://www.davidj.com/pages/flyer.asp & http://www.ronniej.com/linkdes.com/?adv=267&loc=897javascript - document.referrer에서 도메인 만 가져 오기

가, 난 그냥 도메인 예 싶어 있습니다 : 나는 .split 방법을 사용하여 시도 http://www.davidj.com

을하지만 난 문제가 있어요 그것을 사용합니다.

답변

12
var url = "http://www.ronniej.com/linkdes.com/?adv=267&loc=897" 
var referrer = url.match(/:\/\/(.[^/]+)/)[1]; 

http://jsfiddle.net/hyjcD/

if (document.referrer) { 
    url = document.referrer; 
    ref = url.match(/:\/\/(.[^/]+)/)[1]; 
} 
+0

@Reminson 감사합니다 this.it 작동하지만 문제가 .. 내 도메인에 .js 파일을 사용하여 코드를 배치하고 기본적으로 모든 페이지에로드되고 있습니다. 유일한 문제는 이것입니다. url.match (/ : \/\/(. [^ /] +) /) [1]; 페이지를 직접 액세스 할 때마다 (참조 URL이없는) 다음 오류가 발생합니다. ** null ** – Stephen

+0

나는 이것을 사용하고있다 : var url = unescape (document.referrer); var ref = url.match (/ : \/\/(. [^ /] +) /) [1]; – Stephen

+0

'document.referrer'가'undefined'이고 일치시킬 URL이 없기 때문에'if (document.referrer) '가 "undefined"가 아닌지 확인하고이 코드를 실행해야합니다. – undefined

4

체인 분할, 슬라이스 및 가입 :

document.referrer.split("/").slice(0,3).join("/") 
8

당신이하는 것에 훨씬 쉽게

var anchor = document.createElement("a"); 
anchor.href = "http://www.davidj.com/pages/flyer.asp"; 

console.log(anchor.protocol + "//" + anchor.host); // "http://www.davidj.com" 

작은 부품 얻을 내부적으로 사용하는 앵커 요소에 해당 하나에서 URL을 쓸 수 있습니다 당신은 쪼개짐이나 그런 것에 관심을 가질 필요가 없습니다. 그것은 아주 논리적입니다 ... 네이티브 앵커는 최소한 URL과 관련하여 window.location과 같은 속성을가집니다.

(210)

편집 : IE 6-9 당신은 정규식을 사용할 수

+1

IE는 anchor.host''에 포트를 추가 할 수 있지만하지에'location.host' 나타나지 않습니다. 포트가 필요 없다면'anchor.hostname'와'location.hostname'을 대신 사용할 수 있습니다. –

+0

공유를 주셔서 감사합니다 –

0

// anchor.host하는 기본 포트 "http://www.davidj.com:80 추가 :

var matchHost = /^https?:\/\/.*\//; 

var match = matchHost.exec('http://www.davidj.com/pages/flyer.asp'); 
if(match) { 
    var host = match[0]; 
    console.log(host); 
} 
0
if (document.referrer.split('/')[2] == "domain") { 
    //................ 
}        
관련 문제