Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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有焦点时,是否收听按键?_Javascript_Jquery_Iframe_Focus - Fatal编程技术网

Javascript 当iframe有焦点时,是否收听按键?

Javascript 当iframe有焦点时,是否收听按键?,javascript,jquery,iframe,focus,Javascript,Jquery,Iframe,Focus,当iframe具有焦点时,是否有任何方法可以侦听父页面中的按键事件?或者,是否可以将焦点从iframe上移开 请注意,iframe不在同一个域中,因此我无法通过javascript修改其内容 我在父页面中尝试了下面的jquery,我认为间歇性模糊可能会起作用,但它似乎不起作用 function iframeBlur(){ $("#iframe").blur(); } var blurif = setInterval(iframeBlur, 500); 我很确定这是不可

当iframe具有焦点时,是否有任何方法可以侦听父页面中的按键事件?或者,是否可以将焦点从iframe上移开

请注意,iframe不在同一个域中,因此我无法通过javascript修改其内容

我在父页面中尝试了下面的jquery,我认为间歇性模糊可能会起作用,但它似乎不起作用

function iframeBlur(){
    $("#iframe").blur();         
}
var blurif = setInterval(iframeBlur, 500);

我很确定这是不可能的,iFrame受到了相当广泛的保护,不受父JavaScript的影响。出于安全考虑,这是一件好事。否则,黑客可以注册像gmai1.com这样的东西,在真正的gmail.com上有一个大iframe,然后记录来自家长的密码条目

看起来我的语法不对。window.focus();在ffx和chrome中工作(在我知道之前,我必须先解决其他ie bug)


我刚刚注意到将焦点设置为输入元素是有效的。这真的是最好的解决方案吗?我必须创建一个隐藏的输入元素,然后测试其他输入是否当前正在聚焦(在这种情况下,我不应该重新聚焦)。这不会每500毫秒将焦点设置为窗口吗?是的,缺点是这会阻止在iframe窗口中键入任何内容。好处是它允许通过父窗口中的键实现快捷方式。这肯定不太理想,所以我对其他解决方案持开放态度。这不会也会阻止用户在他们的机器上使用任何其他程序吗?如果浏览器每500毫秒出现一次,那么除了你的页面之外,整个机器将无法运行…@JohnYeates这不是真的。您可以切换选项卡或程序。它只是保持窗口处于选中状态,而不是iframe。你永远不会注意到
function iframeBlur(){
    window.focus();  
}
var blurif = setInterval(iframeBlur, 500);