2013-10-30 48 views

回答

1

您可以創建一個會話變量(日期和時間),並將其存儲在localStorage的。在window.load上檢查它,如果存在,則關閉窗口,或者防止進一步加載。

編輯:

我創建了一個完整的解決方案,也許我會發現在未來的一段使用它:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title>test</title> 
    <script> 
     (function() { 
      var interval = 10000; //can be modified to be faster, now it's 10 seconds 
      // localStorage is available everywhere 
      // sessionStorage is available only in current page/tab, 
      // so we can allow page refresh 
      if (localStorage.getItem("catch") && !sessionStorage.getItem("catch")) { 
       var date = new Date(parseInt(localStorage.getItem("catch"), 10)); 
       if (Date.now() - date < interval) { 
        //prevent further loading, hide things etc. 
        document.write('catch'); 
       } 
      } else { 
       setInterval(function() { 
        var date = Date.now(); 
        localStorage.setItem("catch", date); 
        sessionStorage.setItem("catch", date); 
       }, interval); 
      } 
     })(); 
    </script> 
</head> 
<body> 
</body> 
</html> 
1

我能想象用餅乾或localStorage的一個解決方案:

  1. 上網負載:
    • 檢查是否X作爲cookie或localStorage存在。如果存在,則顯示錯誤並重定向到錯誤頁面。
    • 如果X不存在,請繼續。
  2. Onload onload(window.unload and window.onbeforeunload events)remove X
+0

我已經做了使用cookie,但當瀏覽器崩潰(不要去window.unload)的cookie不會刪除.. – wawanopoulos

+0

這就是爲什麼我說要存儲日期時間,如果它不是最近,它意味着window.unload沒有運行在過去,但你仍然可以讓他們進來。 – Rudy

+0

魯迪,你能解釋一步一步的解決方案嗎? – wawanopoulos

相關問題