执行这段代码:
window.addEventListener("mousemove", function() { console.log("moved!") });
激活任何另一个窗口。
在 FF 中:什么都没有。
在 Chrome 中:有一个“移动!”消息。
因此,在非事件窗口中,当鼠标进入窗口时,Chrome 只会触发一个mousemove
事件,然后忽略任何后续移动。
这是一个错误吗?
如何管理这个?我可以检测到鼠标已经离开浏览器窗口,使用 mouseout
事件的 toElement
Prop 。但是如何检测窗口当前是否处于事件状态?
我的环境:
Chrome 46.0.2490.80
火狐 41.0
MacOS 优胜美地 10.10.5
最佳答案
我在 Mac OS 13.0 Ventura 上的 Chrome 107 中看到了相同的行为。这是我的解决方法。
document.addEventListener('mousemove', function(){
if(document.hasFocus()){
console.log("moved!")
}
});
https://stackoverflow.com/questions/33366353/