[英]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.