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 回答