2010-02-10 6 views
1

여기 내 문제가 있습니다. 나는 CMS 내부에서 일하고 있는데, 사용자는 내부 및 외부 하이퍼 링크를 만들 수 있습니다. 외부 사이트로 이동하는 경우 사용자가 링크를 클릭 할 때를 확인할 수있는 좋은 방법이 있는지 궁금합니다. 뒤로/앞으로 버튼을 사용하고 검색 주소창에 뭔가를 입력하면 아무 것도하지 않으려 고합니다. 사이트에있는 페이지로 리디렉션하고 싶습니다. 정말로 그들이 가고 싶은 주소로 이동합니다. 쿼리 문자열을 표시하고 사이트를 떠나는 5 초 (또는 그렇게) 메시지를 표시하고 우리는 그곳에 무엇이 있는지에 대해 책임을지지 않습니다. 최종 사용자는 대부분의 링크 생성에 책임을지기 때문에 실제로 가리 키도록 가르칩니다 중간 페이지의 링크가 이상적이지 않아서 자바 스크립트를 사용하는 쉬운 솔루션이 있는지 궁금합니다.외부 사이트로 이동하기 전에 중간 페이지로 리디렉션

답변

1

당신은 외부에있는 귀하의 사이트에있는 모든 링크에 클릭 이벤트를 첨부 할 jQuery을 사용할 수 있습니다 (귀하의 중간 페이지에 window.location를 (http로 시작, 마이너스 특별한 경우), 다음 모달 대화 상자를 표시 할 수 둘 중 하나, 또는 설정 외부 URL에 대한 쿼리 문자열 var를 집어 넣을 수 있습니다.)

$.expr[':'].external = function(obj){ 
    return !obj.href.match(/^mailto\:/) 
      && (obj.hostname != location.hostname); 
}; 

$('a:external').click(function() { 
    //show your dialog box or set window.location 
    //link in question will be $(this).attr('href') 
}); 
0

데이터를 저장할 때 사용자의 고유 링크 (예 : http://yoursite.com/redirect.ashx?http://external.com)로 사용자의 링크를 대체해야합니다. 그렇지 않으면 사용자 제작 콘텐츠를 다른 사용자에게 제공 할 때 더 나은 방법입니다.

+0

이러한 링크를 생성하는 코드를 얻는 것은 옵션이 아닙니다. 타사 도구를 사용 중이며 수정할 수 없습니다. 내가 정말로 찾고있는 것은 외부 하이퍼 링크를 클릭하고 거기에서 처리 할 때 잡는 방법입니다. – Ben

1

내가 wsanville의 대답에 비슷한에 갈거야 생각 : 그런 다음 동작을 연결, 외부 링크를 얻을 수있는 사용자 정의 선택을 할 수 있습니다. 모든 앵커 태그에 클릭 이벤트를 추가하고 href 값이 도메인 내에 있는지 확인하는 것 외에는

그래서 같은 :

$('a').click(function() { 
    if this.href.indexOf('mydomain.com'!=-1) 
     return true; 
    else{ 
     window.location = "intermediate.html?href=" + this.href; 
    } 
}); 

누구나 가질 수있는 페이지의 모든 앵커 태그에 이벤트를 부착 충돌 성능의 종류를 알아?

관련 문제