当 iFrame 处于焦点时未触发键控事件

Keyup Event Not Triggered When iFrame in Focus

本文关键字:事件 iFrame 于焦点 焦点      更新时间:2023-09-26

首先我要说的是,我无法控制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>

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

脚本:

function changeFocus() {
    if (document.activeElement == document.getElementsByTagName("iframe")[0]) {
        document.getElementById("YOUR_ID").focus();
    }
}
window.setInterval(changeFocus, 1000); // Set time accordingly

也尝试在 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(); }
    });