如何检测外部链接点击?
我有一个简单的问题,可能有也可能没有简单的答案。我需要检测我的某些网页用户是否点击了外部链接,例如广告。
我的第一个想法是,我会在特定链接上放置一个随机数量的透明div,因此用户应该点击它直到他被重定向到新页面,但这对用户来说是不合理的,并且仍然可以被利用
我希望你们能帮助我,我会尽力帮助你们。
对不起我的英语,因为我的母语不是英语。
答案 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)
答案 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');
}
});
我没有测试过这个第二段,但它应该有用。