Javascript 无法将keydown事件绑定到整个文档
我的页面中有一些控件(控件保存在iframe中)。我正在将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(); }
$(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();
}
});
});