[InputManJS]右クリックを無効にする方法

JavaScript

今回はInputmanJSで動作している画面のコンテキストメニューを制御する方法について書きます

コンテキストメニューは、画面を右クリックしたポイントから表示されるメニューのことです
後で画面キャプチャを見てみましょう
さて、よくある右クリック防止法として

<body oncontextmenu="return false;">

というものがありますが、
これを書いてもInputManJSは通用しませんでした

前提情報

  • InputManJS ver.3.2
  • CDNを利用されている場合、ご紹介する方法は使えません

マシンには依存しないので、前提条件としてはこのぐらいでしょう

InputManJS独自のcontextmenu

まず、今回無効にしようとしているコンテキストメニューがどんなものなのか知っておきましょう

普段、ブラウジングしていて皆さんが見るコンテキストメニューと
InputmanJSのコンテキストメニューには違いがあります
つまり、通常Webブラウジングする際に表示されるコンテキストメニューとは別のものが
使用されているということになります

Chromeのコンテキストメニューはこんな感じで表示されますよね

一方、InputManJS独自のコンテキストメニューとは・・・

the simple!!

全然違いますよね
とてもシンプルです
このように、コンテキストメニューはカスタマイズができるのです

冒頭に記載した、bodyに対するcontextmenu無効化は
InputManJS独自のコンテキストメニューに
反映されないので、これを表示させないようにしていきましょう

編集箇所

早速、編集箇所を調べましょう
まず、キーワードは contextmenu ですね

ひたすらcontextmenuと書かれた箇所にブレークポイントを張っていき
画面で右クリックした際に、到達するポイントを探しました

その結果がこちらです↓

gc.inputman-js.ja.js を編集します

反転しているところが編集対象になります

整形するとこんな感じです

min化されているので、何やってるのかわかりづらいですよね。。。

この”contextmenu”イベントに対するcallback関数の先頭で return !1; してしまえば、
右クリックを無効にすることができます

return !1; は return false; と同じ意味です
1: true なので、その否定(!)でfalseとなります

今回は以上です!

ではまた!