Как подсчитать количество кликов пользователей во время посещения сайта, пока не будет достигнуто определенное количество кликов? - PullRequest
0 голосов
/ 21 февраля 2019

Это не тип Google Analytics (хотя мне бы хотелось, чтобы это было).

Мне нужно сделать - как бы глупо это ни звучало - подсчитывать клики пользователей во время их посещениясайт (WordPress сайт FYI).Когда они достигнут пяти щелчков, появится модальное всплывающее окно.Это должно быть 5 кликов либо на одной странице, либо на всем сайте (т.е. считать их клики, когда они посещают несколько страниц, пока их количество не станет 5)

Я подумал, что мне нужно использовать куки, чтобы сохранитьотслеживать количество кликов, хотя я не уверен, что делать, чтобы cookie-файл постоянно обновлялся при нажатии независимо от того, покидает ли пользователь страницу, чтобы перейти на другую, или остается на одной странице.

Я думал о переменных сеанса PHP, так как это сайт WordPress, но я не знаю, нужно ли это?Я просто считаю клики, а не храню какие-либо конкретные пользовательские данные.

Это то, что я делаю до сих пор.В настоящее время время считается до 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();

1 Ответ

0 голосов
/ 21 февраля 2019

localStorage позволяет хранить данные на вкладках, и это намного более гибко, чем файлы cookie.Для подсчета кликов вы можете прослушать все клики на объекте window:

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

   if(count >= 5) {
    //...
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...