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>
  • documentobject の代わりにobjectを使用する必要がありwindowます。IE8windowオブジェクトでは をサポートしていませんonkeydown
  • IE8では、パラメーターとして登録されたイベントがイベントハンドラー関数に受信されないため(例から)、e=e||window.event;コード行を使用する必要があります。element.on...eundefined
于 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 に答える