Escuta de extra-botões do mouse no navegador

1

Eu gostaria de usar o botão extra do meu mouse da Logitech em um contexto da web.

Estou no Ubuntu (mas há coisas semelhantes em outros sistemas operacionais) e posso vincular esses botões às ações do sistema operacional. - > Responda por: Clicar com o botão direito em um evento Javascript?

Eu gostaria de ouvir esses botões em javascript, como os botões normais:

element.addEventListener(function(evt){
  switch(evt.which){
    case 1: //left click
    case 2: //middle click
    case 3: //right click
    case XX: //other buttons clicks
  }
}

link

A única solução que vejo é uma extensão de navegador e passagem de mensagens nativas , pelo menos no Chrome.

Então estou procurando um caminho mais rápido!

    
por Gael 05.05.2015 / 08:29

1 resposta

1

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) ).

    
por 21.11.2015 / 14:00