Javascript 从同一IP地址单击第三个href链接调用JS函数
我有几个.html页面,每个页面都有一些Javascript 从同一IP地址单击第三个href链接调用JS函数,javascript,html,Javascript,Html,我有几个.html页面,每个页面都有一些href链接。 请帮助我的代码调用JS函数第三次点击从同一IP上的任何链接 示例: IP111.111.111.111第一次单击链接,什么都不做 IP111.111.111.111第二次单击链接不做任何事 IP111.111.111.111第三次单击链接onclick=“call_function()” 要获得IP,我将使用此答案中的代码 非常感谢您的帮助……请提供一些想法,以便您能够实现以下目标: 用于为每次访问增加一个值(以下是我为您的案例编写的一个
href
链接。请帮助我的代码调用JS函数第三次点击从同一IP上的任何链接 示例:
IP
111.111.111.111
第一次单击链接,什么都不做IP
111.111.111.111
第二次单击链接不做任何事IP
111.111.111.111
第三次单击链接onclick=“call_function()”
要获得IP
,我将使用此答案中的代码
非常感谢您的帮助……请提供一些想法,以便您能够实现以下目标:
- 用于为每次访问增加一个值(以下是我为您的案例编写的一个示例,在单击3次后显示一个警报:)
- 将此信息存储在
- 您也可以在服务器端进行管理,但这是另一回事,可能更难
这可以帮助您决定Cookie和本地存储之间的最佳解决方案。如下所示 此外,如果您需要它持续一段时间并切换页面等,那么您需要向每个链接添加一个uniqe id,然后根据它的重要性将其存储在cookie或服务器端,每个链接只需点击3次 将“单击的数据”添加到链接后,您可以拥有其他不会以相同方式运行的链接
window.addEventListener('click',函数(e){
如果(e.target.getAttribute(“单击的数据”)==未定义){return true;};
var clk=parseInt(e.target.getAttribute(“单击数据”);
如果(时钟>=2){
e、 target.setAttribute('data-clicked',0);
警报(“点击3次”);
}否则{
e、 target.setAttribute('data-clicked',clk+1);
}
e、 预防默认值();
返回false;
});代码>
或者,如果希望单击的链接数随时间保持不变(直到再次清除localStorage),则可以使用localStorage.setItem()和localStore.getItem()而不是setAttribute和getAttribute。每次单击链接时,都会向服务器发送一个ajax请求,以获取到目前为止单击的链接数。如果单击了第三个链接,请执行链接(不要阻止默认行为),否则停止默认操作。这充其量只是一条评论。您的答案是一堆链接。我尝试用问题提供的相同数量的详细信息回答问题。从这个问题上,我知道@Brooks不知道从哪里开始,所以我给出了一些提示。如果我不了解他的需求,我不会为他写代码。谢谢@LGSon。刚刚做了。:)尽量避免内联添加处理程序。它将使维护变得更加容易,html代码变得更加干净。
<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....')
}