環境
環境A
Microsoft Windows [Version 10.0.19045.2965]
chrome: 114.0.5735.110(Official Build) (64 ビット)
環境B
macOS Monterey 12.6
chrome: 114.0.5735.110(Official Build) (arm64)
状況
とあるWebアプリケーションでjavascriptによる右クリックメニューを実装した。
暗黙的に環境Aで動くように実装していたので、環境Bで動かしたときにおかしな挙動になった。
原因
このサイトを用いて挙動を調査したところ
環境Aでは、押しでmousedown、離しでmouseup, contextmenuだったのに対して
環境Bでは、押しでmousedown, contextmenu、離しでmouseupであった。
まとめ
OSによってはイベントの発火タイミングも違えばイベント順も違った。
WebアプリケーションならOSに依存しないと高をくくっていたが足元を掬われた。