Javascript 在站点上单击三个链接后提示用户?
我想提示用户,一旦他们点击了一个网站的某一部分超过3个链接。我想知道最好的方法 我可以用严格的客户端Javascript实现这一点吗?或者这需要一些服务器端代码吗 我已经在几家房地产网站上看到了这一点,我想尝试一下Javascript 在站点上单击三个链接后提示用户?,javascript,user-interface,client-side,server-side,user-experience,Javascript,User Interface,Client Side,Server Side,User Experience,我想提示用户,一旦他们点击了一个网站的某一部分超过3个链接。我想知道最好的方法 我可以用严格的客户端Javascript实现这一点吗?或者这需要一些服务器端代码吗 我已经在几家房地产网站上看到了这一点,我想尝试一下 function UpdateCount() { if (localStorage.clickcount) { if (Number(localStorage.clickcount) > 3) {alert();} localStorage.clickcou
function UpdateCount() {
if (localStorage.clickcount) {
if (Number(localStorage.clickcount) > 3) {alert();}
localStorage.clickcount = Number(localStorage.clickcount) + 1;
}
else {
localStorage.clickcount=1;
}
}
然后为链接上的onclick事件调用UpdateCount()。假设你有三个文件和它们之间的链接:
<!-- 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;
}
}
var links=document.getElementsByTagName('a');
对于(变量i=0,ii=links.length;i
这将允许用户访问三个链接。之后,用户将收到一个关于已经访问了三个页面的警告框,并且e.preventDefault()
将让用户保持在当前页面上
当然,用户可以通过简单地删除适当的localStorage条目来绕过这种限制,因此,如果您的目标是执行某种阻塞或限制,那么应该在服务器端执行,以防止用户容易篡改。如果你的目标是做一些“无害的”(比如说,功能是用户通常认为是有益的),但是,做整个事情的客户端可能会很好。< /p>每次点击和返回提示时,LoalStor更新都是真正的超链接,还是使用Ajax?如果它们是AJAX,您只需在Javascript中保留一个计数器即可。如果它们是超链接,你需要使用本地存储或cookies。太棒了!非常感谢你!谢谢你的详细说明。这很有帮助。