Javascript iFrame处于焦点时未触发Keyup事件
让我首先说我对iframe没有控制权 像“绊倒”一样,我让用户使用右箭头键导航到下一页 问题是,如果用户单击了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')
<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…”。。。因为我无法访问框架的内容,即使我访问了,也可能不会有同名的框架。无论如何谢谢你!