在 Chrome / Mac OS 上检测 window 之外的中键 mouseup

Detecting middle button mouseup outside the window on Chrome / Mac OS

mouseup事件绑定到window对象通常会触发,即使鼠标按钮在window外释放(只要在window内按下=]).即使鼠标离开了 window.

,这对于通过拖放(和类似操作)来取消非常有帮助
window.addEventListener("mouseup", () => console.log("mouseup"));

但是我遇到了一个问题,它不会在 Chrome 上用 鼠标中键 触发(91 ) 在 Mac OS(卡特琳娜)上。

请注意,它在使用鼠标左键时工作正常,在同一台计算机上的 Safari 中工作正常(使用鼠标中键),在 Chrome 和 Windows 上工作正常。

这是 Chrome 中 Mac 的错误吗?有解决方法吗?我正在制作一个需要使用鼠标中键平移的应用程序,所以即使我们在 window.

之外释放按钮,我也想取消它

我刚刚发现两个月前有人已经在 Chromium 错误跟踪器上报告了它,所以它看起来确实是一个 Chrome 错误:https://bugs.chromium.org/p/chromium/issues/detail?id=1206068

为了解决这个问题,我现在只是在 mousemove 事件上检查 e.buttons,以便在鼠标返回到 window 时取消拖动没有按下任何按钮。不完美但聊胜于无