如何挂接IE键盘事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何挂接IE键盘事件?相关的知识,希望对你有一定的参考价值。

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

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

以上是关于如何挂接IE键盘事件?的主要内容,如果未能解决你的问题,请参考以下文章

vue中触发键盘事件的两种方法和如何自定义键位事件,完整代码!

如何在 IE 中为按钮事件触发 Keypress 事件

是否可以使用VS2008自动挂接C#中的事件?

js中键盘事件e.which,火狐浏览器不支持!在线等!

Android页面事件挂接模拟

外挂是是怎么写的?