2012-04-19 20 views
2

WebアプリケーションでF5キーを無効にしたいとします。IE8で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()を使ってみましたが、何も動作しません。どんな助け?

+9

どのような目的のためにですか?また、Ctrl/Cmd + Rを使用したり、リフレッシュボタンを押したりすることもできます。 –

+0

別の(もっと良いかもしれない)オプションは、ユーザーがページから離れているかどうかを確認することです(例:リフレッシュ)、確認を求めます。 – Shoban

+4

デフォルトのブラウザ機能を改ざんしないでください。 –

答えて

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> 
  • あなたが代わりにwindowオブジェクトのdocumentオブジェクトを使用する必要があります。 IE8ではwindowオブジェクトはonkeydownをサポートしていません。
  • IE8- element.on...として登録されたイベントは、イベントハンドラ関数(がundefined)に受信されないため、e=e||window.event;コード行を使用する必要があります。 IE8、Firefoxとクロームでテスト
+0

助けてくれてありがとうアンドリューです。あなたが投稿したコードスニペットで、警告メッセージが表示されていますが、IE8でページが更新されています。 F5キーを押したときにページが更新されないようにする方法はありますか? –

+0

@Himanshu Saraswat、申し訳ありませんが、私は1行のコード行を失う 'e.keyCode = 0;'更新された答えを見てください。 IE8とChromeで確認しました。 –

1

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を参照してください。

+0

私の例では、まずスクリプトをテストするために結果フレームにフォーカスを合わせる必要がありました。私はこれを防ぐためにリンクを更新しました。ソースをもう一度見るには、リンクのURLにある '/ show /'を削除してください。 – scessor

+0

百万人の感謝のおかげです。コードが機能しました。しかし、複数のキーストローク(F5、BackspaceまたはCtrl + R)をテストしている場合、F5はコードが処理されるまでにテストされる最初のキーでなければならないことに気付きました。助けてくれてありがとう –

+0

よろしくお願いします。 – scessor

関連する問題