在Internet Explorer 7中,onmousemove或document.onmousemove事件仅在鼠标位于浏览器窗口内时触发,而不是在外部时触发.然而在Firefox中,当我移出浏览器窗口时,onmousemove事件被正确调用.
如何设置在IE浏览器窗口外调用的事件?
Google地图在IE中执行此操作.如果按住鼠标按钮并将鼠标移动到浏览器窗口之外,则可以看到地图仍在移动.
我想在鼠标离开浏览器窗口时运行一些Javascript代码.我只需要支持Safari(WebKit.)
我尝试在窗口上放置一个mouseout处理程序.当鼠标离开浏览器窗口时,可以可靠地调用该处理程序.但是由于冒泡,当鼠标在文档中的元素之间移动时也会调用它.我无法弄清楚如何确定鼠标何时实际离开窗口以及何时仅在元素之间移动.
当鼠标离开窗口时,只生成一个事件,并且目标元素看起来是鼠标实际上的元素.因此,检查目标元素是窗口还是文档是不起作用的.并且将整个页面包装在一个不可见的包含div中也不起作用:如果div是不可见的,那么鼠标永远不会超过它,所以没有任何变化.
(如果我把处理程序放在document或document.body上会发生同样的事情,除了令人惊讶的document.body在鼠标进入或离开窗口的空白部分时没有鼠标悬停/鼠标输出事件,例如创建空的垂直空间通过绝对定位底部元素:0.对于该空间,文档和窗口将获得mouseover/mouseout事件,目标为<html>,但document.body不会.)
我有一些想法:
我们使用prototype.js,所以理想情况下我想用原型的Event.observe来表达解决方案,但我可以想出那部分.
谢谢你的任何建议!