独自の右クリックメニューを実装するサンプルです。
サンプルソース
例)独自の右クリックメニューサンプル
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>右クリックメニューサンプル</title> <script> window.onload = function(){   var menu = document.getElementById('conmenu');  //独自コンテキストメニュー   var area = document.getElementById('area');     //対象エリア   var body = document.body;                       //bodyエリア   //右クリック時に独自コンテキストメニューを表示する   area.addEventListener('contextmenu',function(e){     menu.style.left = e.pageX + 'px';     menu.style.top = e.pageY + 'px';     menu.classList.add('on');   });   //左クリック時に独自コンテキストメニューを非表示にする   body.addEventListener('click',function(){     if(menu.classList.contains('on')){       menu.classList.remove('on');     }   }); } </script> <style> #conmenu{   width:130px;   background-color:#f0f0f0;   border:1px solid #999999;   display:none;   position:fixed; } #conmenu.on{   display:block; } #conmenu ul{   list-style:none;   margin:0px;   padding:5px; } #area{   width:400px;   height:200px;   background-color:#ddddff; } </style> </head> <body oncontextmenu="return false;"> <div id="conmenu">   <ul>     <li><a href="https://www.google.co.jp" target="_blank">Google</a></li>     <li><a href="https://www.yahoo.co.jp/" target="_blank">Yahoo</a></li>     <li><a href="https://www.goo.ne.jp/" target="_blank">goo</a></li>   </ul> </div> <div id="area">このエリア上で右クリックしてください。</div> </body> </html> | 
解説
- 52行目で、標準の右クリックメニュー(コンテキストメニュー)を無効にしています。
- 13行目、53~59行目で、独自右クリックメニューを設定しています。
- 20行目で、左クリック時に右クリックメニューを消しています。