如何挂钩IE键盘事件?

时间:2009-09-15 11:24:30

标签: javascript-events keyboard-events

我试图在用户尝试按下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 个答案:

答案 0 :(得分:1)

document.body.accessKey = String.fromCharCode(e.keyCode);