![](/img/trans.png)
[英]How to alert user directly after prompt rather than after they answer all three prompts?
[英]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.