我有一个浏览器程序,如果按住鼠标按钮,它会执行某些操作。为此,程序会侦听 pointerdown
对象上的 pointerup
和 document
事件。当接收到这些事件时,程序会设置(或取消设置)一些跟踪按钮保持状态的标志。还有许多其他输入事件也应该取消设置按钮保持标志,例如 focusout
和 pointerout
。
浏览器断点似乎是一个灰色区域。在 Firefox 中,按住鼠标并触发断点会导致 pointerout
事件被触发,这让我可以正确地取消设置按钮保持标志。但是,Chrome(87.0.4280.88,Mac OS)在遇到断点时似乎不会触发任何 blur
、pointerout
、mouseout
或 focusout
。结果是,在我恢复正常执行后,我的程序代码仍然认为鼠标按钮被按住,直到我在浏览器窗口中再次单击。
是否有解决方法?似乎没有任何方法可以直接轮询鼠标的状态,所以似乎我需要完全依赖事件来驱动它。