仕事JavaScriptでFunctionキーのイベントを書き換え仕事でファンクションキーにイベントを設定する必要が出たので備忘録で。通常だとF1でヘルプF5で更新などが掛かってしまうわけですが、これを別のものにしたいということになりました。面倒なのでjQueryでkeyDownに設定したんですが、ヘルプキーが結構わがままで切れない。IE限定ですがヘルプはonhelpというイベントがあるらしいので、こいつを殺してしまうことにしたらIEはヘルプが出なくなりました。false;}[/js]IE以外は多分持っていないので、持っているかどうか判定してからイベントリスナを設定しています。これだとChromeのヘルプがまだ出ます。しょうがないのでkeydownで切ってしまいます。別の処理を割り当てるのでこれで問題ないと。その代わりデフォルトの処理は一切利かなくなります。false;}});[/js]ファンクションキーへの割り当てを動的に変える場合にはkeydownではなくonで。最低限ファンクションキーのみ使えなくするには、KeyCodeでファンクションキーだけ指定します。KeyCodeの割り当ては下記の通りです。123ということで、112以上123以下のキーを切ってしまえばOKということになります。あとはswitch文で各キーごとに処理を書くだけです。一応このままでも動くのでこれでいい気もしますが、なにか違う動作を割り当てられているかもしれないので、デフォルトのキーイベントを全部とめてしまうほうがいいかもしれないです。ファンクションキー以外のキーにも割り当てをする場合には止めといたほうがいいです。イベントをとめる話は伝播とか入ってめんどくさいのでまた別の機会にでも。[js]e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();[/js]とりあえずこれでいいんじゃないかなとは思います。e.stopPropagation()とe.stopImmediatePropagation()はあわせて使うとバブリングが止められるので。