

Chrome App を作成しているのですが、Chrome Dev Editorのようにマウスの右クリックでメニューを表示するような処理をしたいです。  
右クリックを検知するにはどのようなイベントハンドリングをすれば良いのでしょうか？


CC BY-SA 3.0
2015-04-27T05:34:35.137
9586
2015-04-30T03:52:27.177
450
question
javascript google-chrome google-chrome-apps
Chromeで右クリックイベントを検知したい


参考程度ですが  
Chrome appに詳しくないので、独自のことはわかりませんが、  
普通のjsなら下記のような感じでしょうか?

[code]

    
    // idがsomethingという要素があるとして
    var element = document.getElementById("something");
    element.onclick = function (e) {
        if (e.button === 2) {
            // 右クリック時の処理をこの中に書いていく
        }
    }
    
    
[/code]

参考  
[click - Event reference | MDN](https://developer.mozilla.org/en-
US/docs/Web/Events/click)


CC BY-SA 3.0
2015-04-27T13:08:45.807
9611
2015-04-27T13:08:45.807
5246
9586
answer


自分で調べていて見つけた別解ですが、[contextmenuイベント](https://developer.mozilla.org/en-
US/docs/Web/Events/contextmenu)を処理することで実装できました。

[code]

    var elem = document.querySelector('#targetElement');
    elem.addEventListener('contextmenu', function(e) {
    
      // ブラウザーのデフォルトの右クリックの挙動を阻止する
      e.preventDefault();
    
      // コンテキストメニューのUIを表すDOM要素をマウスの位置に表示する
      var contextMenu = document.querySelector('#myContextMenu');
      contextMenu.classList.remove('hidden');
      contextMenu.style.left = e.x + 'px';
      contextMenu.style.top = e.y + 'px';
    
    });
    
[/code]


CC BY-SA 3.0
2015-04-30T03:52:27.177
9681
2015-04-30T03:52:27.177
450
9586
answer