2010-12-08 2 views
9

이 질문은 제휴 마케팅을 나타내지 만 하이퍼 링크가 다른 사이트로 이동하기 전에이를 차단하여 방문자 활동을 데이터베이스에 기록 할 수 있는지에 대한 일반적인 질문입니다.jQuery에서 하이퍼 링크를 일시적으로 가로 채는 방법은 무엇입니까?

내 제휴 마케팅 클라이언트는 정말 좋은 질문이있었습니다. seed 키워드를 사용하여 API를 통해 아마존에서 제품을 가져온 시나리오를 상상해보십시오. 이제 방문자가 Amazon에서 볼 수있는 제품 중 하나를 클릭한다고 상상해보십시오. 해당 제품의 URL은 다음과 같이 나타납니다 (이 그냥 데모입니다) :

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20

하지만 뭐가 잘못 됐을까? 그 시드 키워드를 전달하지 않습니다. 따라서 어떤 키워드가 가장 효과적인지 알 수 없습니다. 우리가 추가 PARAMS을 통과 할 수있는 곳

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20&seed=laptops

내가 아마존에있는 모든 문서를 보지 않았다 다음 필터에 의해 보고서에서 그들을 추적하는 대신, 그녀는 우리가 다음 통과하고 어떻게 든 추적 할 수하고자했다 .

내가 생각할 수있는 유일한 점은 아마존으로 이동하기 전에 클릭을 캡처해야한다는 것입니다. 다른 말로하면, 그 이벤트가 터져서 실행되기 전에 어떻게 든 jQuery에서 먼저 인터셉트하고, 하이퍼 링크의 href URL을 파싱하고,이 추가 시드 키워드 정보를 집계하여 AJAX를 통해 PHP 페이지 및 데이터베이스로 다시 보냅니다. 테이블을 만든 다음 해당 클릭 이벤트를 릴리스하여 실행되고 브라우저가 Amazon으로 이동합니다.

누구나 jQuery에서 어떻게 수행되는지 알고 있습니까? 나는 AJAX 부분을 알고 있습니다. 단지 클릭을 잡는 클릭 요격 부분이 아니라, 그 부분을 놓습니다. 기본 동작은이 함수의 끝에 return true;을 넣고 싶은 경우

답변

3
var seed = "&seed=laptops"; 
$("a").live('click',function(){ 
    $(this).attr('href', $(this).attr('href')+seed); 
}); 
20

당신은

$("a").click(function(){ 
    // write your code 
}); 

처럼, 모든 앵커 태그에 클릭 이벤트를 바인딩 할 수 있습니다.

+0

빙고! 이것은 내가 필요한 것입니다. 나는 이것이 가능하다는 것을 전혀 몰랐다. - 고마워요! :) IE7 +, Opera (최신), Chrome (최신), FF (최신) 및 Safari/Windows (최신)로 테스트 한 결과 작동합니다. 내가 추가 한 유일한 추가 사항은 "var u = $ (this) .attr ('href');"입니다. 클릭 한 URL을 알 수 있습니다. – Volomike

+3

우수하고 간결한 답변입니다. 업데이트로, 이후 버전의 jQuery에서 더 적절한 방법은'$ ("a")를 호출하는 것입니다. on ('click', function() {...' – Trevor

관련 문제