在单击窗口之前未检测到 keydown

Spe*_*May 5 javascript focus onload keydown

在我的 Web 应用程序中,我有一个用于打开菜单的键的事件侦听器。只有在我点击页面上的任何地方后,这才可以正常工作。我试图将焦点添加到 onload 窗口...但这仍然不会让 keydown 函数运行,直到我点击页面上的某个地方。

有谁知道这是否可能?我无法想象它不是,但.focus();据我尝试,它不是 goto

我的主要功能示例:

    document.addEventListener('DOMContentLoaded', function() {
        // I have tried window.focus(); and window.document.focus(); 
        document.addEventListener('keydown', function(event) {
            var key = event.keyCode;
            if (key == 36) {
                toggleMenu();
                event.preventDefault();
            }
        });
    });
Run Code Online (Sandbox Code Playgroud)

sta*_*ark 1

在这里检查这个小提琴:fiddle

使用$(window).focus();(与jquery一起使用)

编辑: 这是本机 javascript 中的解决方案:fiddle

首先,如果文档没有焦点,则 check_focus() 函数将焦点放在窗口上,然后检测按键。

希望这可以帮助。