Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从同一IP地址单击第三个href链接调用JS函数_Javascript_Html - Fatal编程技术网

Javascript 从同一IP地址单击第三个href链接调用JS函数

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,我将使用此答案中的代码 非常感谢您的帮助……请提供一些想法,以便您能够实现以下目标: 用于为每次访问增加一个值(以下是我为您的案例编写的一个

我有几个.html页面,每个页面都有一些
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....')
}