2007.10.09

ファンクションキーを無効にする方法

ファンクションキーを無効にする方法が以下です。

<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はこんなことまで出来てしまうんですね。
本当に奥が深い!!

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
jnakamura