如何检测鼠标何时离开窗口?我希望能够检测到鼠标何时离开窗口,以便在用户的鼠标位于其他位置时可以阻止事件触发。有关如何做到这一点的任何想法?
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
在html页面上实现拖放行为时,通常需要这种类型的行为。以下解决方案在MS Windows XP计算机上的IE 8.0.6,FireFox 3.6.6,Opera 10.53和Safari 4上进行了测试。
首先是Peter-Paul Koch的一个小功能; 跨浏览器事件处理程序
function addEvent(obj, evt, fn) { if (obj.addEventListener) { obj.addEventListener(evt, fn, false); } else if (obj.attachEvent) { obj.attachEvent("on" + evt, fn); }}
然后使用此方法将事件处理程序附加到文档对象mouseout事件:
addEvent(document, "mouseout", function(e) { e = e ? e : window.event; var from = e.relatedTarget || e.toElement; if (!from || from.nodeName == "HTML") { // stop your drag event here // for now we can just use an alert alert("left window"); }});
最后,这是一个html页面,其中嵌入了用于调试的脚本:
<html><head><script type="text/javascript">function addEvent(obj, evt, fn) { if (obj.addEventListener) { obj.addEventListener(evt, fn, false); } else if (obj.attachEvent) { obj.attachEvent("on" + evt, fn); }}addEvent(window,"load",function(e) { addEvent(document, "mouseout", function(e) { e = e ? e : window.event; var from = e.relatedTarget || e.toElement; if (!from || from.nodeName == "HTML") { // stop your drag event here // for now we can just use an alert alert("left window"); } });});</script></head><body></body></html>
繁星coding
TA贡献1797条经验 获得超4个赞
这对我有用:
addEvent(document, 'mouseout', function(evt) { if (evt.toElement == null && evt.relatedTarget == null) { alert("left window"); }});
添加回答
举报
0/150
提交
取消