在访问网站上的X页数后执行此操作

时间:2010-10-01 05:28:25

标签: javascript jquery frontend

是否有一种简单的方法可以跟踪您网站上的用户使用Javascript(最好是jQuery)访问了多少页面?

我需要在用户访问网站上超过5页后执行一项功能。

我在考虑将window.location.href存储到变量中并检查它是否与下一页匹配。如果不是,我会将其注册为一个页面更改,依此类推。这听起来对我来说听起来很合理,但如果我走错了路,请指导我。

3 个答案:

答案 0 :(得分:1)

如果您想在网站上的网页上跟踪用户,最好使用Cookie。虽然你不需要jquery,但有一个很好的jQuery插件可以帮助你管理cookie。 (http://code.google.com/p/cookies/wiki/Documentation)。

使用Cookie,您可以在每个页面上运行JavaScript,以检查是否存在网站Cookie。如果这不存在,您将使用值1创建它。如果它存在,您将增加其值。然后,一旦您看到值为5,您就知道他们访问了5页。

答案 1 :(得分:1)

jQuery没有本机cookie功能。

虽然我完全同意这应该在服务器端完成,但我自己永远不会这样做......你可以完全用普通的Javascript来完成。

我已经整合了一个适合您目的的功能。只有当他们访问了6页,其中每个页面与前一页不同时,它才返回true。

function mySiteTracker() {
    var pageCounter = readCookie('pageCounter');
    var pageLast = readCookie('pageLast');
    var pageInt = 0;
    if (pageCounter) {
        pageInt = parseInt(pageCounter);
        if (pageInt > 5) return true;
        if (window.location.href == pageLast) return false;
    }
    createCookie('pageCounter',(pageInt + 1));
    createCookie('pageLast',window.location.href);
    return false;
}


//The following 2 functions providing the get/set 
//functionality are MODIFIED from: http://www.quirksmode.org/js/cookies.html

function createCookie(name,value) {
    document.cookie = name+"="+value+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

我没有专门测试这个...如果您有任何问题,请告诉我。

答案 2 :(得分:0)

$(document).ready(
function(){
    if ($.cookie('userViews')) {
        var views = parseInt($.cookie('userViews')) + 1;
    }
    else {
        var views = 1;
    }

    $.cookie('userViews',views,{expires:30});

    if (views > 5) {
        // do whatever you want to do after 5 views.
    }

}
);

以上代码仅在使用jQuery cookies插件时才有效。

值得做出的事情明显的 - 指出任何基于JavaScript的解决方案都容易受到用户干扰,脚本可以被更改,cookie被操纵等等。如果您要求至少相对安全解决方案 1 ,那么服务器端解决方案(使用您喜欢的任何服务器端脚本语言)可能会更好方法


  1. 显然,基于服务器的视图计数解决方案很容易被游戏,特别是因为 F5 非常容易获得。