我有几个.html页面,每个页面都有一些href
个链接
请帮我一个代码,在任何链接上从同一IP点击第3次点击时调用JS函数。
例:
IP 111.111.111.111
点击链接第一次不做任何事情
IP 111.111.111.111
点击链接第二次不做任何事情
IP 111.111.111.111
第三次点击链接onclick="call_function();"
要获得IP
我将使用此回答中的代码https://stackoverflow.com/a/2031935/4805488
非常感谢任何帮助...
答案 0 :(得分:1)
有些想法可以实现这一目标:
此link可以帮助您确定哪种解决方案最适合Cookie和本地存储。
答案 1 :(得分:1)
如下所示...
此外,如果你需要这个以及时间和切换页面等,你需要为每个链接添加一个uniqe id,然后根据它与3的重要性将它存储在cookie或服务器端。点击每个链接。
点击数据""添加到链接中,您可以使用其他不会以相同方式操作的链接。
arr = [0]
arr.cycle { |i| puts arr[0] +=2 }

window.addEventListener('click', function(e) {
if (e.target.getAttribute("data-clicked") == undefined) { return true; };
var clk = parseInt(e.target.getAttribute("data-clicked"));
if (clk >= 2) {
e.target.setAttribute('data-clicked', 0);
alert("Clicked 3 times");
} else {
e.target.setAttribute('data-clicked', clk + 1);
}
e.preventDefault();
return false;
});

答案 2 :(得分:1)
<a onclick="call_function(this, alertMe);">click me</a>
您可以执行以下操作:
function call_function(element, callback) {
//check to see if clicked before or else start with 0;
var clicked = parseInt(element.getAttribute('data-clicked') || 0);
// increment the amount of clicks
clicked++;
// store the click amount in a data attribute
element.setAttribute('data-clicked', clicked);
// return the callback when the click amount 3 or greater.
return clicked >= 3 ? callback() : false;
}
function alertMe() {
alert('wow! 3 times is....')
}
或者你可以使用localStorage.setItem()和localStore.getItem()代替setAttribute和getAttribute,如果你想让点击的数字随着时间的推移而持续存在(直到再次清除localStorage)