如何挂接IE键盘事件?

问题描述 投票:4回答:1

我试图在用户尝试按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文件上时永远不会执行。

javascript internet-explorer-8 dom-events keyboard-events
1个回答
1
投票
document.body.accessKey = String.fromCharCode(e.keyCode);
© www.soinside.com 2019 - 2024. All rights reserved.