我的页面中有一些控件(控件保存在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区域,如何让控件获得焦点?
提前致谢。
答案 0 :(得分:2)
我认为您可以使用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();
}
});
});
我希望它适用于所有
答案 1 :(得分:0)
您可以在iframe上使用.load()
事件,并使用.contents()
获取内容,如下所示:
您可以替换此行:
$("#accordion").focus();
使用此代码:
$('iframe').contents().load(function(){
$(this).find("#accordion").focus();
});
如果您正在使用iframe,那么您必须等待加载iframe然后执行.focus()