我可以在我的webapp中禁用浏览器刷新吗?

时间:2011-04-19 05:01:30

标签: javascript html browser webbrowser-control

我想在我的网站上停用刷新功能。有没有办法禁用 F5 Ctrl - R ,还是在网页上重新加载?

9 个答案:

答案 0 :(得分:14)

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

这将禁止离开页面,除非用户确认,而不是刷新,因此您必须自己编写代码才能使其正常工作。

你从来没有说过你在做什么,所以我把它留在了那里。

答案 1 :(得分:7)

不,没有办法禁用它。

如果您要避免“是否要再次提交此操作?”对话框,请使用Post/Redirect/Get

答案 2 :(得分:3)

每次进入页面时都要检查cookie。 如果cookie在那里,那么你知道刷新了。

如果没有cookie,则创建一个持续时间为零的cookie(仅在浏览器仍然打开时存在)

答案 3 :(得分:2)

我有个建议。这个页面有一个答案框。

(以下是您的答案标签)

  • 在其中输入一些文字。
  • 然后刷新此页面

当你刷新时会显示一些警告信息,我建议你显示类似的警告信息,而不是禁用刷新功能。

答案 4 :(得分: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);

答案 5 :(得分:1)

不,没有这样的方法。您可以警告用户不要刷新

答案 6 :(得分:0)

可能会有一些技巧可以在某些浏览器上运行,但没有什么可以保证它们无法刷新页面。浏览器和Web标准是开放的,因此用户可以轻松地浏览浏览器以解决您实施的任何问题。

如果刷新会对用户体验产生负面影响,最好给他们一个文字警告。

如果这是为了修复错误(例如缺乏幂等性),你应该考虑修复bug。

答案 7 :(得分:0)

有一种方法可以阻止用户按F5刷新页面。在你的身体标签里试试这个代码:

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

答案 8 :(得分:0)

如果要禁用ctrl + f5,ctrl + R,f5,退格,则可以使用此简单代码。此代码适用于Mozila和Chrome。在您的body标签中添加此代码:

<body onkeydown="return (event.keyCode == 154)">