2014-04-03 84 views
0

我知道這不是一個很難找到的答案,但我想在瀏覽器中禁用頁面刷新。我正在開發一個考試應用程序,當用戶開始測試時,它將在新窗口中打開。但我不希望用戶刷新此測試頁面。使用JavaScript避免瀏覽器刷新

我可以做到這一點使用下面的JavaScript代碼:

document.onkeydown = function (e) { 
    var key; 
    if (window.event) { 
     key = event.keyCode 
    } else { 
     var unicode = e.keyCode ? e.keyCode : e.charCode 
     key = unicode 
    } 
    switch (key) { //event.keyCode 
     case 116: 
      //F5 button 
      alert("11"); 
      event.returnValue = false; 
      key = 0; //event.keyCode = 0; 
      return false; 
     case 82: 
      //R button 
      if (event.ctrlKey) { 
       alert("11"); 
       event.returnValue = false; 
       key = 0; //event.keyCode = 0; 
       return false; 
      } 
    } 
} 

但是當用戶轉到位置/地址欄和重點,並按下F5鍵,頁面刷新。不僅僅是f5,而且對於shift + f5,瀏覽器顯示了相同的行爲。如何避免這一點?

請幫忙。

+0

如果有人剛剛關閉新窗口並開始另一個窗口,該怎麼辦? – Huangism

+0

你真的無法避免它 –

回答

0

像這樣的東西應該讓你更接近你的目標。

window.onload = function() { 
    document.onkeydown = function (e) { 
     return (e.which || e.keyCode) != 116; 
    }; 
} 
0

的問題是,你正在嘗試做的是允許網頁可以很容易被不良或越野車的網站濫用過瀏覽器的行爲太多的控制權從根本上危險的。

不能阻止關閉頁面,刷新頁面等內容。即使您屏蔽了鍵盤快捷方式,用戶也可以隨時再次導航到該網址。

一個更好的問題就是說爲什麼你不希望他們刷新和修復。例如,如果它因爲你有一個測試時間的JavaScript倒計時,那麼可以通過記錄它們在數據庫中啓動的時間以及它們何時刷新從正確的點恢復倒計數來解決。