使用jQuery,我如何暂时拦截超链接点击事件?

时间:2010-12-08 05:12:41

标签: jquery javascript-events click amazon intercept

这个问题涉及联盟营销,但实际上是关于在超链接到其他站点之前拦截超链接的一般性问题,您可以将访问者活动记录到数据库。

我的联盟营销客户有一个非常好的问题。想象一下,在给定种子关键字的情况下,您可以通过其API从亚马逊撤回产品。现在假设访问者点击其中一个产品在亚马逊上查看它。该产品的URL可能如下所示(这只是一个演示):

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

但是猜猜那有什么不对?它没有传递种子关键字。因此,我们不知道哪个种子关键字最有效。相反,她希望我们能够通过以下内容,然后以某种方式跟踪:

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

我没有在亚马逊上看到任何文档,我们可以传递额外的参数,然后通过过滤器在报告中跟踪它们。

所以,我唯一能想到的就是我们需要在点击之前捕捉点击亚马逊。换句话说,在该事件冒泡并执行之前,在jQuery中我可以先拦截它,解析该超链接的href URL,添加这个额外的种子关键字信息,通过AJAX将其发送回PHP页面和数据库表,然后释放该click事件,以便执行它并且浏览器将关闭到Amazon。

有谁知道这是如何在jQuery中完成的?我知道AJAX部分 - 只是抓取点击的点击拦截部分,然后释放它。

2 个答案:

答案 0 :(得分:22)

您可以将click事件绑定到所有锚标记,例如

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

如果您想进行默认操作,请在此功能的末尾添加return true;

答案 1 :(得分:3)

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