1

我是 JavaScript 和 cookie 的新手,我正在尝试创建一个显示某人访问网站的次数、他们最后一次访问的时间以及 cookie 的到期日期。

到目前为止,我已经从 W3schools 获取代码并尝试根据我的需要修改它,但没有运气,然后我尝试了 SitePoint。我现在拥有的是两者的融合...

JavaScript

function createCookie(name, value, expires) {
    var cookie = name + "=" + escape(value) + ";";

    document.cookie = cookie;

function getCookie(name)  {
    var regexp = new RegExp("(?:^" + name + "|;\s*"+ name + ")=(.*?)(?:;|$)", "g");
    var result = regexp.exec(document.cookie);
    return (result === null) ? null : result[1];
}

function checkCookie()  {
    var visLog = getCookie("visLog");
    var visAmt = 0;
    var logDate = new Date();
    //create lastLog logDate storage


    if (visLog != null)  {
        visAmt++;
        alert("You've visited this page: " + visAmt + " times." \n
            "Last visited: " + logDate + "." \n
            "This cookie will stop tracking: " + expires);
    }else{
        createCookie("visLog", "visits", "December 31, 2013 12:59:59");
    }
} 

HTML

<body onload="checkCookie()">

编辑:语法。

4

1 回答 1

-1

您是否有理由从 cookie 而不是从应用程序数据库执行此操作?只有当用户在同一台​​机器上使用相同的浏览器时,cookie 才会显示信息。通常这种东西与用户登录信息一起存储在数据库中。


使用 localStorage 可能更容易实现,因为大多数浏览器现在都有它:

function updateVisitInfo() {
    localStorage.lastVisit = new Date();
    localStorage.numVisits = (localStorage.numVisits || 0) + 1;
}

function printVisitInfo() {
    alert("You've visited this page: " + (localStorage.numVisits || 0) + " times." \n
        "Last visited: " + (localStorage.lastVisit || "never") + "."
}
于 2013-10-14T00:58:42.780 回答