为了账号安全,请及时绑定邮箱和手机立即绑定

如何检测鼠标何时离开窗口?

如何检测鼠标何时离开窗口?

白猪掌柜的 2019-08-17 15:43:38
如何检测鼠标何时离开窗口?我希望能够检测到鼠标何时离开窗口,以便在用户的鼠标位于其他位置时可以阻止事件触发。有关如何做到这一点的任何想法?
查看完整描述

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>


查看完整回答
反对 回复 2019-08-17
?
繁星coding

TA贡献1797条经验 获得超4个赞

这对我有用:

addEvent(document, 'mouseout', function(evt) {
  if (evt.toElement == null && evt.relatedTarget == null) {
    alert("left window");
  }});


查看完整回答
反对 回复 2019-08-17
  • 3 回答
  • 0 关注
  • 532 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信