2011-04-19 86 views
10

我想在我的網站上禁用刷新。有沒有什麼辦法可以禁用F5,Ctrl - R,還是重新加載一個網頁?我可以在我的webapp中禁用瀏覽器刷新嗎?

+2

如果您想開發自己的瀏覽器,它會好得多。 – 2011-04-19 05:07:00

+3

每當我聽到開發者提出這種可能性時,都是因爲他們發現刷新瀏覽器會破壞他們的代碼。但是,如果他們的代碼忽略或覆蓋Web瀏覽器的基本導航模型 - 這是他們正在開發的平臺,那麼這纔是真正可行的。答案不在於進一步混淆模型。這是爲了解決你所做的任何事情,從而摧毀Web的正常預期行爲。 – 2011-04-19 05:54:15

+0

如果頁面包含任何計時器,則需要禁用刷新。否則計時器將從頭開始。 – 2014-01-29 10:16:31

回答

2

我有一個建議。此頁面中有一個答案框。

(下面在這裏對你的回答標籤)

  • 鍵入一些文字吧。
  • 然後刷新本頁面

刷新時有一些顯示警告信息,我建議你來顯示類似的警告消息,而不是禁用刷新功能。

1

沒有,沒有這樣的辦法。你可以只警告用戶不刷新

7

沒有,有沒有方法來禁用它。

如果你想避免「你要再次提交這個動作?」對話框,使用Post/Redirect/Get

0

可能有一些技巧,將一些瀏覽器,但並沒有什麼,可以保證他們不能刷新頁面。瀏覽器和網絡標準是全面開放的,所以用戶可以輕鬆破解瀏覽器來解決你實施的任何問題。

如果耳目一新將用戶體驗造成負面影響,最好是給他們一個文本警告。

如果這是修復bug(如缺乏冪等的),你應該考慮修復bug來代替。

12
window.onbeforeunload = function() {return false;} 

這將禁用離開頁面,除非用戶確認,不只是刷新,所以你必須編寫這個自己得到它的工作。

你從來沒有說過你用它在做什麼,所以我留在這一點。

+0

但是你如何定製消息? – Pacerier 2017-10-17 09:58:56

+0

https://stackoverflow.com/questions/38879742/is-it-possible-to-display-a-custom-message-in-the-beforeunload-popup – 2017-10-17 21:01:35

+0

「我很驚訝所有人都說你不能這樣做「我認爲每個人都是對的。您可以顯示確認模式,但無論如何您都無法禁用頁面重新加載。 – Jaime 2018-03-07 15:14:39

2

我不知道如何禁用刷新點擊(我仍然需要一個自己) 除了使用服務器端腳本來停止「重定向」 不過,我知道非常容易的jQuery禁用F5

function disableF5(e) { if (e.which == 116) e.preventDefault(); }; 
// To disable f5 
$(document).bind("keydown", disableF5); 
// To re-enable f5 
$(document).unbind("keydown", disableF5); 
3

檢查一個cookie每次進入頁面時。 如果cookie在那裏,那麼你知道刷新了。

如果cookie是不是有一個創建零時間(只存在,直到瀏覽器仍處於打開狀態)

0

在你還在尋找一個方便的解決方案的情況下,我創建了當他們嘗試點擊刷新或導航離開該頁面可用於禁用F5,也提示最終用戶快速和非常簡單的jQuery插件:

https://github.com/clintb/LockNav

0

有一種方法以防止用戶按F5刷新頁面。試試這個代碼你的身體標記內:

<body onkeydown="return (event.keyCode != 116)"> 
0

如果要禁用Ctrl + F5,按Ctrl + R,F5,退格鍵,那麼你可以使用這個簡單的代碼。此代碼在Mozila以及Chrome中都可以使用。將此代碼添加到您的身體標記中:

<body onkeydown="return (event.keyCode == 154)"> 
相關問題