Как перехватить событие IE клавиатуры? - PullRequest
4 голосов
/ 15 сентября 2009

Я пытаюсь отключить ярлыки браузера, пока пользователь пытается нажать комбинацию клавиш в файле 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-файле.

1 Ответ

1 голос
/ 01 декабря 2010
document.body.accessKey = String.fromCharCode(e.keyCode);
...