リンククリック時のイベントを書いていましたが、リンクはホイールボタンをクリックして別タブで開くこともあります。
その場合、clickイベントでは発火しないため、mousedownイベントで捕捉する必要があります。
すなわち
const clickEvent = (e) => {}
const a = document.querySelector('a')
a.addEventListener('click', clickEvent)
a.addEventListener('mousedown', (e) => {
if (e.button != 1) {
return
}
clickEvent(e)
})
と中央ボタン判定を加える必要がある。
いっそ左ボタンクリックもmousedownに統合してclickイベントは書かなくてもよい。
clickイベントにも押されたボタンを調べられるbuttonプロパティがあるが、そもそも発火しないため罠というか無駄に継承している感があるような…
左クリックはclick,右クリックは(一応)contextmenuで検知できるのに、中央クリックにイベントがないのは釈然としなかったので調べたが、どうにも見つからない。
wheelイベントもあるのだから、もう一声。あっても良かろうに。