簡體   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