鼠标进入非活动浏览器窗口(Chrome)时触发一次鼠标移动

xxslljrj  于 2022-12-06  发布在  Go
关注(0)|答案(1)|浏览(173)

1.打开开发工具控制台。
1.执行此代码:

window.addEventListener("mousemove", function() { console.log("moved!") });

1.激活任何另一个窗口。
1.将鼠标移至浏览器窗口(但不要将焦点置于其中)。
1.查看控制台。

在FF中:没有任何内容。
**镀 chrome **:存在一个“移动!”消息。

因此,在非活动窗口中,当鼠标进入窗口时,Chrome只触发一个mousemove事件,然后忽略任何后续移动。
这是一个错误吗?
如何管理这个?我可以检测到鼠标离开了浏览器窗口,使用mouseout事件的toElement属性。但是如何检测窗口当前是否处于活动状态?
我的环境:
chrome 合金
火狐41.0
MacOS约塞米蒂10.10.5

kiayqfof

kiayqfof1#

我在Mac OS 13. 0 Ventura上的Chrome 107中看到了同样的行为。以下是我的解决方法。

document.addEventListener('mousemove', function(){
    if(document.hasFocus()){
        console.log("moved!")
    }
});

相关问题