![](/img/trans.png)
[英]How can I count the number of clicks and then send an ajax request with that number?
[英]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.