2010-12-08 3 views
9

この質問は、アフィリエイトマーケティングを指しますが、実際にハイパーリンクを傍受して別のサイトに移動する前に、訪問者アクティビティをデータベースに記録できるという一般的な質問です。jQueryで、ハイパーリンクのクリックイベントを一時的に傍受するにはどうすればいいですか?

私のアフィリエイトマーケティングクライアントには本当に良い質問がありました。 APIを使ってAmazonからプルバックされた製品を、シードキーワードが与えられているシナリオを想像してみてください。今、訪問者がそれらの製品の1つをクリックしてAmazonに表示したとします。その製品のためのURLは次のようになります(これは単なるデモです):

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

しかし、それと間違って何思いますか?それはその種のキーワードを渡していません。だから、どの種子のキーワードが最も効果的かはわかりません。代わりに、彼女たちは次のように合格して、何とかそれを追跡することができたいた:

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

私たちは余分のparamsを渡すことができAmazonで任意のドキュメントを参照して、フィルタによってレポートでそれらを追跡しませんでした。

私が考えることができるのは、クリックがAmazonに送信される前にそれをキャプチャする必要があることだけです。言い換えれば、そのイベントがバブルアップして実行される前に、何とかjQueryで最初に傍受し、そのハイパーリンクのhref URLを解析し、この追加のシードキーワード情報をタックし、AJAXを介してPHPページとデータベースに戻しますテーブルを開き、そのクリックイベントをリリースして実行され、ブラウザはAmazonに移行します。

これはjQueryでどのように行われているのですか?私はAJAXの部分を知っている - ちょうどクリックをつかむクリックインターセプト部分ではなく、それを解放する。あなたはデフォルトのアクションを実行したい場合は、

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

のように、すべてのアンカータグにクリックイベントをバインドすることができ

答えて

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

は、この関数の最後でreturn true;を置きます。

+0

ビンゴ!これはまさに私が必要としていたものです。私はこれが可能であるとは思っていませんでした - ありがとう!私はIE7 +、Opera(最新)、Chrome(最新)、FF(最新)、Safari/Windows(最新)でテストしています。私が追加した余分なものは、 "var u = $(this).attr( 'href');"どのURLがクリックされたかわかります – Volomike

+3

優秀かつ簡潔な答え。更新版として、jQueryのそれ以降のバージョンでは、より適切な方法は '$(" a ")を呼び出すことです。on( 'click'、function(){...' – Trevor

関連する問題