Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iFrame处于焦点时未触发Keyup事件_Javascript_Jquery_Iframe_Keyup - Fatal编程技术网

Javascript iFrame处于焦点时未触发Keyup事件

Javascript iFrame处于焦点时未触发Keyup事件,javascript,jquery,iframe,keyup,Javascript,Jquery,Iframe,Keyup,让我首先说我对iframe没有控制权 像“绊倒”一样,我让用户使用右箭头键导航到下一页 问题是,如果用户单击了iframe窗口内的任何位置,则忽略包含文档的keyup事件 <script type="text/javascript"> $(document).ready(function() { $(document).on('keyup', null, function(event) { var stumblenext = $('#stumblenext')

让我首先说我对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>

$(文档).ready(函数(){
$(文档).on('keyup',null,函数(事件){
var stumblenext=$(“#stumblenext”);
如果(event.keyCode==39){top.location=stumblenext.attr('href');}
如果(event.keyCode==37){history.back();}
});
});

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

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

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

脚本:

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

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

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

脚本:

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

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

这就是“有意义”的地方,但stumbleupon是如何做到的?从技术上讲,相同的问题是“未捕获的TypeError:无法调用null的方法‘focus’”。在上述代码中,您应该使用适当的id来代替
您的id
。确保
document.getElementById(YOUR-ID)
不为空,即存在一个ID=YOUR-ID…正确的元素。我指的是在iframe内部触发单击后的控制台消息。最初,不会抛出此错误(如果事实上,我实际上让控制台在我们设置的时间间隔上输出一条消息…),但是,一旦我在iframe内部单击,就会抛出“uncaughttypeerror:cannotcallmethod'focus'of null…”。。。因为我无法访问框架的内容,即使我访问了,也可能不会有同名的框架。无论如何谢谢你!这就是“有意义”的地方,但stumbleupon是如何做到的?从技术上讲,相同的问题是“未捕获的TypeError:无法调用null的方法‘focus’”。在上述代码中,您应该使用适当的id来代替
您的id
。确保
document.getElementById(YOUR-ID)
不为空,即存在一个ID=YOUR-ID…正确的元素。我指的是在iframe内部触发单击后的控制台消息。最初,不会抛出此错误(如果事实上,我实际上让控制台在我们设置的时间间隔上输出一条消息…),但是,一旦我在iframe内部单击,就会抛出“uncaughttypeerror:cannotcallmethod'focus'of null…”。。。因为我无法访问框架的内容,即使我访问了,也可能不会有同名的框架。无论如何谢谢你!