Javascript 无法将keydown事件绑定到整个文档

Javascript 无法将keydown事件绑定到整个文档,javascript,jquery,Javascript,Jquery,我的页面中有一些控件(控件保存在iframe中)。我正在将keydown事件绑定到控件,如下所示 $(function () { $(document).on("keydown", function (e) { if (e.altKey && e.keyCode === 74) { // j- key code. $("#accordion").focus(); }

我的页面中有一些控件(控件保存在iframe中)。我正在将keydown事件绑定到控件,如下所示

    $(function () {
        $(document).on("keydown", function (e) {
            if (e.altKey && e.keyCode === 74) { // j- key code.
                $("#accordion").focus();
            }
        });
    });
页面加载后,如果我按alt+J,控件在chrome中会正确聚焦,但在Firefox和IE中不会聚焦。只有在单击iframe区域然后按alt+J时,控件才会聚焦。如果删除iframe,则控件在所有浏览器中都会正确聚焦,而无需单击iframe区域。如果我按alt+J键而不需要单击iframe区域,如何使控件获得焦点

提前感谢。

您可以在iframe上使用
.load()
事件,并使用
.contents()
获取内容,如下所示:

您可以替换此行:

$("#accordion").focus();
使用此代码:

$('iframe').contents().load(function(){
    $(this).find("#accordion").focus();
});

如果您正在使用iframe,则必须等待iframe加载,然后执行
.focus()
我认为您可以使用document.ready或window.onload

请看下面的例子:

$(document).ready(function() {
      $(document).on("keydown", function (e) {
        if (e.altKey && e.keyCode === 74) { // j- key code.
            $("#accordion").focus();
        }
    });
});

我希望它在所有可能的情况下都能正常工作
$(window).load(function() {
     $(document).on("keydown", function (e) {
        if (e.altKey && e.keyCode === 74) { // j- key code.
            $("#accordion").focus();
        }
    });
});