ユーザーがswfファイルのキーの組み合わせを押しようとしている間、ブラウザのショートカットを無効にしようとしています。Firefox ではこれを実現できますが、以下のコードは IE 8 では機能しません。フォーカスが swf ファイルにない場合、以下のコードはキーボード イベントをフックできます。ただし、ユーザーがswfファイルを操作するときにキーボードイベントをフックする必要があります。
function hookKeyboardEvents(e) {
alert("hooked key");
// get key code
var key_code = (window.event) ? event.keyCode : e.which;
// case :if it is IE event
if (window.event)
{
if (!event.shiftKey && !event.ctrlKey && !event.altKey) {
window.event.returnValue = null;
event.keyCode=0;
}
}
// case: if it is firefox event
else
e.preventDefault();
document[flashId].keyDown(key_code);
}
window.document.onkeydown = hookKeyboardEvents;
フォーカスが swf ファイルにある場合、上記のコードは実行されません。