2

我想在我的 Web 应用程序中禁用 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(),但没有任何效果。有什么帮助吗??

4

2 回答 2

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对象。在 IE8window对象中不支持onkeydown.
  • 您必须使用e=e||window.event;代码行,因为在 IE8 中,当注册为element.on...没有参数的事件被接收到事件处理函数中时(e从您的示例中是undefined);
于 2012-04-19T06:07:01.783 回答
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;
    }
}

另请参阅此示例

于 2012-04-19T06:37:19.737 回答