检测外部链接点击?

时间:2011-01-18 12:11:22

标签: javascript jquery

如何检测外部链接点击?

我有一个简单的问题,可能有也可能没有简单的答案。我需要检测我的某些网页用户是否点击了外部链接,例如广告。

我的第一个想法是,我会在特定链接上放置一个随机数量的透明div,因此用户应该点击它直到他被重定向到新页面,但这对用户来说是不合理的,并且仍然可以被利用

我希望你们能帮助我,我会尽力帮助你们。

对不起我的英语,因为我的母语不是英语。

4 个答案:

答案 0 :(得分:5)

使用jquery,选择所有外部链接和click事件的处理程序:

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

// Manage clicks on external links
$('a:external').click(function() {
    // do your stuff here, ie send the link href to some server-side script
    $.ajax({ type: "POST", url: "some.php", data: "href="+$(this).attr("href") });
});

答案 1 :(得分:1)

嘿,你真的需要使用谷歌分析。 如果您不想这样做,请检查一下。 Logging hyperlink clicks on my website

答案 2 :(得分:0)

您可以通过执行以下操作来跟踪不属于当前网站的出站点击次数:

jQuery(document).ready(function($) {
    $('body').on('click', 'a[href^="http"]:not([href*="//' + location.host + '"])', function(){
        if (typeof(_gaq) !== 'undefined') {
            _gaq.push(['_trackEvent', 'outbound', 'click', this.href.match(/\/\/([^\/]+)/)[1]]);
            _gaq.push(['t2._trackEvent', 'outbound', 'click', this.href.match(/\/\/([^\/]+)/)[1]]);
        }
    });
});

显然,如果您不需要,可以删除Google Analytics gaq内容。

答案 3 :(得分:-3)

如果您可以在链接中添加额外的类,则可以执行以下操作:

<a href="http://www.externalsite.com/" class="external">AD</a>

即。为每个链接添加一个“外部”类,然后像这样使用jquery:

$('.external').click(function(event) {
    // do something before the user gets redirected
});

您还可以使用event.preventDefault()来阻止默认操作(即重定向用户),然后执行其他操作。

修改 如果你不能直接将class =“external”添加到标记中,你可以使用jQuery使用一些代码在dinamycally添加它:

$('a').each(function() {
    if($(this).attr('href') is an external link) {
        $(this).addClass('external');
    }
});

我没有测试过这个第二段,但它应该有用。