javascript - 检测 iframe 上的鼠标位置

标签 javascript jquery html dom iframe

我有一个 iframe,里面有一个 Flash 剪辑,占据了整个窗口,在 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,它也可以正常工作.. 不确定是否有办法解决这个问题..

最佳答案

天哪,我确实让事情变得比必要的复杂得多,只需检测 iframe 上的鼠标悬停和鼠标移出事件就可以完成任务。

http://jsfiddle.net/89s7q/

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

关于javascript - 检测 iframe 上的鼠标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314666/

相关文章:

Javascript 替换 innerhtml

javascript - 在 react 中传递 child

javascript - 将 JSON 字符串解析为 HTML5 代码的更快方法

javascript - 让导航栏出现在白色背景的滚动条上

javascript - 使用 href 代替输入

javascript - 如何将空的itext添加到我在fabricjs中单击鼠标的 Canvas ?

javascript - 如何从另一个函数启动一个javascript函数

asp.net - 设置文本样式 asp.net javascript

javascript - 如何在 Javascript 中读取 asp.net 中的行

html - 我怎样才能让我的菜单/标志居中而不是一直靠右?