当iFrame成为焦点时,不会触发键盘事件

时间:2013-11-02 07:37:59

标签: javascript jquery iframe keyup

首先让我说没有控制iframe。

就像“绊脚石”一样,我让用户使用右箭头键导航到下一页。

问题是,如果用户在iframe窗口内的任何位置单击,则忽略包含文档上的keyup事件。

<script type="text/javascript">
$(document).ready(function() {
    $(document).on('keyup', null, function(event) {
        var stumblenext = $('#stumblenext');
        if (event.keyCode == 39) { top.location=stumblenext.attr('href'); }
        if (event.keyCode == 37) { history.back(); }
    });
});
</script>

2 个答案:

答案 0 :(得分:1)

当您检测到焦点位于iframe上时,请将焦点更改为页面上的其他元素。

脚本:

function changeFocus() {
    if (document.activeElement == document.getElementsByTagName("iframe")[0]) {
        document.getElementById("YOUR_ID").focus();
    }
}

window.setInterval(changeFocus, 1000); // Set time accordingly

答案 1 :(得分:0)

尝试在iframe上绑定keyup

$(document, $("#idOfiFrame").contents()).on('keyup', null, function(event) {
        var stumblenext = $('#stumblenext');
        if (event.keyCode == 39) { top.location=stumblenext.attr('href'); }
        if (event.keyCode == 37) { history.back(); }
    });