检测iframe上的鼠标位置

时间:2012-02-16 16:06:30

标签: javascript jquery html5 dom iframe

我有一个内部带有闪存剪辑的iframe占据了整个窗口,在iframe之外我有一个div作为iframe上方的菜单栏,它有下拉菜单。

现在的挑战是让这些下拉菜单显示在鼠标悬停时,但在访问者与flash / iframe交互时隐藏。

我可以通过检查document.activeElement轻松检测是否是这种情况,但有问题的部分是检测他们何时“不”使用flash。我现在正在做的只是检测主窗口上的鼠标移动,然后通过调用top.focus()重置activeElement,(document.activeElement.blur()由于某种原因在Chrome上不起作用)。问题是,在执行此操作后,当用户与其交互时,不会再将activeElement设置回iframe,几乎就像top.focus()无限期地将activeElement设置为“body”一样。

关于如何正确地做到这一点的任何想法?

简而言之,我需要在与主窗口进行交互时将焦点从iframe中移开,然后在与iframe交互时将焦点设置回iframe(这应该是浏览器的默认行为)。

由于

编辑:

jsFiddle展示问题:http://jsfiddle.net/tvc3S/

请注意,没有Flash它工作正常..不确定是否有办法解决这个问题..

1 个答案:

答案 0 :(得分:3)

男孩我肯定会让事情变得比必要的复杂得多,只需检测iframe上的mouseover和mouseout事件就可以了。

http://jsfiddle.net/89s7q/

当然这会使用悬停事件而不是焦点事件,这会产生稍微不同的体验,但这对我正在做的事情很好。