【发布时间】:2013-08-17 16:48:19
【问题描述】:
我想阻止用户因为在我的项目中运行考试测试而按下 F5 按钮。
如果我使用普通浏览器窗口,我的代码可以正常工作,但现在我想在弹出窗口中使用它 - 在弹出窗口中我的代码不起作用。我的代码是:
document.onkeydown=function(e) {
var event = window.event || e;
if (event.keyCode == 116) {
event.keyCode = 0;
alert("This action is not allowed");
return false;
}
}
【问题讨论】:
-
除了 F5 之外,还有许多其他刷新页面的方法。我认为你无法压制所有这些人。
-
您必须在应用程序中保存状态并在刷新后恢复。没有办法阻止用户刷新您的页面(F5 不仅可以这样做)
-
@Spudley 我知道,但我想根据要求只禁用 f5 和鼠标右键,,,
-
我一般用ctrl+R刷新。或者我可以使用浏览器工具栏中的刷新图标。然后是浏览器开发工具的可能性:我可以打开它并做任何事情(包括更改您的 JS 代码)。而且我们甚至还没有开始使用浏览器插件(安装了 GreaseMonkey,我可以再次覆盖您页面上的任何内容)。如果用户想刷新页面,他会的。您对此无能为力。阻止他以一种方式去做只会让他以另一种方式去做。如果这很重要,那么您需要更强大的保护,并且需要在服务器端。
-
@Spudley 我禁用了工具栏和工具栏中的图标,而且考场里有很多教练,所以没有一个用户使用任何附加组件或扩展,所以只需给我 f5 的代码并单击鼠标右键,,,
标签: javascript keyboard-shortcuts remap browser-refresh