Em primeiro lugar, essa é uma pergunta que provavelmente deveria estar no stackoverflow e não aqui.
Mas vou responder a pergunta, porque apareceu no google quando eu estava procurando por algo similar, então outros podem se perguntar.
Existe uma especificação padrão para detectar até dois botões extras do mouse (além da esquerda, do meio (roda), direita).
O problema é que ele ainda não está implementado por nenhum navegador, provavelmente porque pode ter implicações para o trapping "trapping".
No objeto event
que é passado para o seu manipulador, há uma propriedade .buttons
, que é um mapa de bits dos quais os botões são pressionados (para vários botões de uma só vez).
document.addEventListener('mousedown', function(ev) {
console.log('MB1', ev.buttons & 1) // 1 if clicked, 0 if not
console.log('MB2', ev.buttons & 2)
console.log('MB3', ev.buttons & 4)
console.log('MB4', ev.buttons & 8) // usually browser-back
console.log('MB5', ev.buttons & 16)// usually browser-forward
})
Os dois últimos não se registram em nenhum navegador hoje e você não pode substituir os eventos de retorno do navegador e de encaminhamento do navegador; portanto, ele mudará a página se você clicar nesses botões (se eles estiverem definidos para esse comportamento) ).