如果光标没有碰到边缘,当鼠标光标离开网页时如何检测?

时间:2016-05-27 00:06:08

标签: javascript

我正在为一个看似简单的任务寻找一个非JQuery解决方案:检测鼠标离开页面的时间。但是,标准方法使用:

document.onmouseleave
//or
document.onmouseout

仅在鼠标通过边缘离开页面时才起作用。

这意味着如果鼠标通过交叉进入另一个具有更高焦点的程序(例如:Notepad.exe),它将失败
如果浏览器最小化(例如: Win + D ),或者 Alt + Tab ,它也将失败用来。 可能还有其他方法会失败。

还有哪些方法可以更有效地检测鼠标离开?也许甚至通过民意调查? 这必须适用于Chrome + Windows,但最理想的是任何现代浏览器。

更新
dman2306已链接到一些用于检测浏览器何时最小化的方法,包括:

document.addEventListener("visibilitychange", function() {
  doThings();
}, false);

我刚刚验证过适用于Windows 8.1的最新版Chrome。

只是通过另一个Window的边缘,或通过 Alt + Tab 离开光标的问题。

2 个答案:

答案 0 :(得分:1)

有一个事件(<Control>formValues['message']).updateValue('') 可以满足您的需求。

onblur

答案 1 :(得分:0)

您可以为onfocusout事件添加另一个处理程序解决方案,该处理程序将检测另一个程序是否获得焦点或窗口是否已最小化。