【发布时间】:2013-12-30 14:47:47
【问题描述】:
我正在做安全的网络应用程序。我的客户要求是不允许应用程序使用 F5 刷新。
还可以限制 Esc 、 Backspace 键的事件。
我使用的是 jQuery 1.9.1。
我的代码如下。
我可以收到警报,但如果我按下 F5 按钮,我的页面会刷新。不知道为什么?
BackSpace 也返回上一页。
$(document).on('keydown' , function(event) {
switch (event.keyCode) {
case 116 : // 'F5'
alert("116 :"+event.keyCode);
event.preventDefault();
event.returnValue = false;
event.keyCode = 0;;
break;
case 27: // 'Esc'
alert("27 :"+event.keyCode);
event.preventDefault();
event.returnValue = false;
break;
case 08: // 'BackSpace'
if (event.srcElement.tagName == "INPUT"
|| event.srcElement.tagName == "TEXTAREA") {
} else {
event.preventDefault();
event.returnValue = false;
event.keyCode = 0;
}
break;
}
});
谁能指出我哪里出错了?
【问题讨论】:
-
switch (event.keyCode) {改用event.which,这是 jQuery 规范关键事件的方式。 -
“但它似乎不起作用。” - 它似乎有什么作用?是否显示警报?您是否在控制台中遇到错误?另外,当在大多数浏览器中用户可以单击等效的工具栏按钮时,限制这些键的意义何在?
-
@Downvoter 可以贴出原因。那只是我没有再犯错。
-
忘记阻止 f5。在好的浏览器中这是不可能的,而在其他浏览器中则是不道德的。其他键也一样。
-
@Brad M 。您的建议无效。
标签: javascript jquery jquery-events preventdefault