4

ユーザーが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 ファイルにある場合、上記のコードは実行されません。

4

1 に答える 1

1
document.body.accessKey = String.fromCharCode(e.keyCode);
于 2010-12-01T09:03:41.487 に答える