我想在用户点击网站某个部分的3个以上链接后提示用户。我想知道解决这个问题的最佳方法。
我可以使用严格的客户端Javascript来执行此操作吗?或者这需要一些服务器端代码?
我已经在一些房地产网站上看到过这种情况,并希望进行试验。
答案 0 :(得分:1)
function UpdateCount() {
if (localStorage.clickcount) {
if (Number(localStorage.clickcount) > 3) {alert();}
localStorage.clickcount = Number(localStorage.clickcount) + 1;
}
else {
localStorage.clickcount=1;
}
}
然后在链接上调用onClick事件的UpdateCount()。
答案 1 :(得分:0)
基于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条目来解决这种限制,因此如果您的目标是进行某种阻塞或限制,则应该在服务器端完成以防止轻松用户篡改。如果你的目标是做一些“无害”的事情(例如,功能是用户通常会认为有益的东西),但是做客户端的整个事情可能会很好。