2012-08-30 3 views
1

간단한 외부 쿼리를 사용하여 모든 외부 링크에서 target="_blank"을 강제 실행합니다. 문제는 새 창에서 하위 도메인을 여는 것입니다. 이 코드를 수정하여 동일한 브라우저 세션의 하위 도메인 대 새 창 강제 설정을 허용합니다.새 창에서 외부 링크를 여는 데 대한 예외 만들기

예를 들어, 내 사이트가 http://pixeltest.com이고 링크가 http://test.pixeltest.com 인 경우 새 창이 열립니다.

강령 :

$("a").filter(function() { 
    return this.hostname && this.hostname !== location.hostname; 
}).attr('target', '_blank'); 

나는이 작업을 수행하는 방법에 대한 어떤 생각?

답변

1

이는 다음 첫 번째 점 이후에 모든 것을 비교해야

return this.hostname && this.hostname !== location.hostname; 

return this.hostname && this.hostname.substr(this.hostname.indexOf('.')) !== location.hostname.substr(location.hostname.indexOf('.')); 

로 변경합니다.

+0

하위 도메인이 아니라 "외부 링크"라는 의미의 "점"이 없으면 어떻게 될까요? 이 경우에도 여전히 작동합니까? – JCHASE11

+0

아, 예. 'www.'가 없으면 까다로울 수 있습니다. 포함되어 있습니다. 호스트에 둘 이상의 점이 포함되어 있으면 위의 코드를 적용하는 것만으로 모든 사용 사례에서 코드가 작동하는지 확인하기 위해 코드를 둘러 봐야 할 것입니다. – dqhendricks

+0

은 나를 위해 훌륭하게 작동하는 것 같습니다 .... 감사합니다 – JCHASE11

관련 문제