我想在我的网络应用程序中禁用F5键。我使用以下代码:
<html>
<head>
<script type="text/javascript">
window.onkeydown=function(e) {
if (e.keyCode === 116 ) {
alert("This action is not allowed");
e.keyCode = 0;
e.returnValue = false;
return false;
}
}
</script>
</head>
<body>
<p> F5 Test IE8</p>
</body>
</html>
以上代码在Chrome中运行良好但在IE8中无效。在按F5时,页面将在IE8上刷新。我尝试过使用e.preventDefault(),但没有任何效果。任何帮助?
答案 0 :(得分:4)
尝试下一个代码:
<html>
<head>
<script type="text/javascript">
document.onkeydown=function(e) {
e=e||window.event;
if (e.keyCode === 116 ) {
e.keyCode = 0;
alert("This action is not allowed");
if(e.preventDefault)e.preventDefault();
else e.returnValue = false;
return false;
}
}
</script>
</head>
<body>
<p> F5 Test IE8</p>
</body>
</html>
document
对象而不是window
对象。在IE8中,window
对象不支持onkeydown
。e=e||window.event;
代码行,因为在IE8中 - 当事件注册为element.on...
时,没有参数被接收到事件处理函数中(e
来自您的示例undefined
) ; 答案 1 :(得分:1)
在IE8,firefox和chrome中测试过:
document.onkeydown=function(e) {
var event = window.event || e;
if (event.keyCode == 116) {
event.keyCode = 0;
alert("This action is not allowed");
return false;
}
}
另见this example。