ファンクションキーを無効にする方法が以下です。
<html>
<head>
<title>ファンクションキーを無効にする</title>
<script language="JavaScript"><!--
function keydown()
{
if(event.keyCode >= 112 && event.keyCode <= 123){
event.keyCode = 0;
return false;
}
alert("無効にできてません");
}
window.document.onkeydown = keydown;
//--></script>
</head>
<body>
ファンクションキーを押下してください。<br>
無効になっていますから!
</body>
</html>
簡単に説明すると・・
まず、
キーが押されたら、keydownを呼ぶ。
window.document.onkeydown = keydown;
押されたキーコードが「F1」~「F12」の範囲内かチェック
event.keyCode >= 112 && event.keyCode <= 123
キーコードを0にする
event.keyCode = 0;
ファンクションキーのイベントを無効にする
return false;
という流れです。
ちなみに、ファンクションキー以外を押下すると、
alert("無効にできてません");
上記のイベントが発生します。
上記は単純に無効化しただけですが、
F2を押下したときに、何らかのイベントを発生させたい場合は、
条件判定の部分を
event.keyCode == 113
とすれば、F2を押下したときだけ、何らかのイベント発生させることが出来ます。
こんな感じです。
if(event.keyCode == 113){
alert("F2が押されました!");
event.keyCode = 0;
return false;
}
(F2が押されたときだけ、アラートが発生)
ただ、上記だとF1キーを無効に出来ないのです。
どうしても、ヘルプ画面が出てきてしまいます。
では、どうするのかというと、
bodyにonHelp="return false;"を追加してみてください。
こんな感じです。
<body onHelp="return false;">
このようにヘルプキーを無効にすることによって、
F1を押下してもヘルプが出なくなります。
Javascriptはこんなことまで出来てしまうんですね。
本当に奥が深い!!