javascript - 在访问网站上 X 个页面后执行此操作

标签 javascript jquery frontend

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

我需要在用户访问网站上超过 5 个页面后执行一个函数。

我正在考虑将 window.location.href 存储到一个变量中并检查它是否与下一页匹配。如果没有,我会将其注册为一页更改等。这在理论上听起来对我来说是合理的,但如果我走错了路,请指导我。

最佳答案

jQuery 没有 native 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;
}

我没有专门对此进行测试...如果您有任何问题,请告诉我。

关于javascript - 在访问网站上 X 个页面后执行此操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836754/

相关文章:

javascript - kendo 模板在什么范围内执行?

javascript - Edge 浏览器中的 focus()

jquery - 我如何使用 jquery 创建这些嵌套的 dom 元素?

javascript - 更改 Javascript 中一系列选项卡的背景颜色

javascript - Marionette CollectionView 在 collection.fetch 后不会重新渲染

javascript - SAPUI5:sap.m.Shell 和 sap.m.App 作为应用程序包装容器的优缺点是什么?

javascript - 如何创建按 Enter 时充当链接的 &lt;input&gt;

css - 在单独的样式表中用您自己的 CSS 覆盖前端框架的 CSS 是最有效的方法吗?

javascript - 使用 Ajax 的 JavaScript 代码中的评估顺序?

javascript - Jquery 文件拖放给我一个 "insecure operation"错误