繁体   English   中英

在网站上单击三个链接后提示用户?

[英]Prompt user after three links are clicked on site?

我想在用户单击网站某个部分上的3个以上链接时提示用户。 我想知道解决此问题的最佳方法。

我可以使用严格的客户端Javascript吗? 还是需要一些服务器端代码?

我已经在几个房地产网站上看到过此内容,并希望进行实验。

function UpdateCount() {
  if (localStorage.clickcount) {
    if (Number(localStorage.clickcount) > 3) {alert();}
    localStorage.clickcount = Number(localStorage.clickcount) + 1;
  }
  else {
    localStorage.clickcount=1;
  }
}

然后为链接上的onclick事件调用UpdateCount()。

一个基于CJ答案中的代码的扩展示例。 考虑您有三个文件并在其中相互链接:

<!-- test1.htm -->
<a href="test2.htm">Test2</a>
<a href="test3.htm">Test3</a>

<!-- test2.htm -->
<a href="test1.htm">Test1</a>
<a href="test3.htm">Test3</a>  

<!-- test3.htm -->
<a href="test1.htm">Test1</a>
<a href="test2.htm">Test2</a>

在每个文件中,您还包含了负责计算这些链接的点击次数的相同脚本。 脚本内容如下:

var links = document.getElementsByTagName('a');

for(var i = 0, ii = links.length; i < ii; i++) {
   links[i].addEventListener('click',ClickCounter,false);
}
function ClickCounter(e) {
  if(localStorage.clickCount) {
    if(+localStorage.clickCount === 3) {
      alert("Three links visited already!");
      e.preventDefault();
    } else {
      localStorage.clickCount = +localStorage.clickCount + 1;
    }
  } else {
    localStorage.clickCount = 1;
  }
}

这将允许用户访问三个链接。 之后,用户将获得一个警告框,提示已访问了三个页面,并且e.preventDefault()会将用户保持在当前页面上。

当然,用户可以通过简单地删除相应的localStorage条目来解决这种限制,因此,如果您的目标是进行某种阻止或限制,则应在服务器端执行此操作,以防止用户轻易进行篡改。 但是,如果您的目标是做“无害的”事情(例如,该功能通常是用户认为有益的事情),那么在客户端做整个事情就可以了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM