簡體   English   中英

在達到特定點擊次數之前,如何計算網站訪問期間用戶的點擊次數?

[英]How can I count the amount of user clicks during website visit until a specific number of clicks is reached?

這不是谷歌分析類型的東西(雖然我希望它是)。

我需要做的是——盡管聽起來很愚蠢——計算用戶在訪問一個網站(一個 WordPress 網站僅供參考)期間的點擊次數。 當他們點擊五次時,將顯示一個彈出式模式。 必須在一頁或整個網站上獲得 5 次點擊(即在他們訪問多個頁面時計算他們的點擊次數,直到計數為 5)

我想我需要使用 cookie 來跟蹤點擊次數,但我不知道該怎么做才能使 cookie 在點擊時始終保持更新,無論用戶是否離開頁面去訪問另一個或停留在一頁上。

我在考慮 PHP 會話變量,因為這是一個 WordPress 網站,但我不知道是否有必要? 我只是計算點擊次數,不存儲任何特定的用戶數據。

這就是我到目前為止所做的。 目前,while 只在單擊后計數到 5,這並不理想。

function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

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

function checkCookie() {
    let click = getCookie("click");
    if (click === 5) {
        alert("stop counting: " + click);
    } else {
        $(document).on("click", function () {
            let count = 1;

            while (click < 5) {
                click = count++;
                setCookie("click", click, 30);
                 console.log("click count is: " +click);I
            }
            if (click === 5) {
                alert("5 clicks reached!");
            }

        });
    }
}
checkCookie();

localStorage讓你跨標簽存儲數據,它比 cookie 更靈活。 要計算點擊次數,您可以收聽window對象上的所有點擊次數:

 window.addEventListener("click", () => {
   let count = +localStorage.getItem("clickCount") || 0;
   count += 1;
   localStorage.setItem("clickCount", count);

   if(count >= 5) {
    //...
   }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM