右クリック禁止の撃退法



0. まえがき
1. onContextMenuを使ったもの
3. Javascript+フレームを使ったもの(1)
4. Javascript+フレームを使ったもの(2)
5. 新規ウィンドウでメニューを消したもの
6. 新規ウィンドウでメニューを消してキャッシュされないもの
7. 外部スクリプトファイルを使ったもの(IEのみ)
8. まとめ・その他

※Windows マシンで確かめています。他のマシンではどうなるのかわかりません。


0. まえがき

 インターネットでいろいろなところを見ていて、
    「この画像ほしいなあ。」
    「このページどんなソースだろう?」
と思うことはありますよね。
 普通は次のようにできます。

画像を保存する。
IE 画像を右クリックし 「名前を付けて画像を保存...」
NN 画像を右クリックし 「イメージを保存」
ソースを見る。フレームを使っている場合はトップのフレームになります。
IE メニューの 「表示」 の 「ソース」
NN メニューの 「表示」 の 「ページソース」
ソースを見る。フレームを使っている場合はそれぞれのフレームになります。
IE そのフレームを右クリックし 「ソースの表示」
NN そのフレームを右クリックし 「フレームソースを表示」

 要するに右クリックでできるのです。

 右クリックはこれだけではなく、文字列のコピー、エンコードの変更、プロパティの表示などもできます。またブラウザによっては右クリックに独自のメニューを設定できるものもありますし、マウスジェスチャーなどの機能が備わっているものもあります。右クリックはたいへん便利なものなのです。

 ところが「画像を保存させたくない」とか「ソースを見られたくない」などの理由で、右クリックを禁止しているページがあります。そういうところは・・・

  ページを出すな。

と私は言いたい。ページを公開するということは、

  「画像はパクられるもの」
  「ソースはのぞかれるもの」

です。これがいやなら会員制にしたりパスワードを付けたりすればいいのです。ページを出しておいて右クリックを禁止にするなんて見ている人をバカにしてます。

 ということでこのページは、


  右クリック禁止はやめぃ。


という意図で書いてあります。右クリック禁止の方法とソースを見る方法です。画像はソースさえわかれば保存できます。わからない人はタグを勉強しましょうね。


1. onContextMenuを使ったもの

☆ 仕組み

 これはIE5以上でしか右クリックを禁止できません。

 右クリックイベントハンドラというものを使用します。右クリックのイベントを拾いエラーをブラウザに返すことで、右クリックメニューを表示させなくするものです。onContextMenu を次のように BODY タグ内に入れると可能です。

<BODY onContextMenu="alert('右クリックはだめぢゃ');return false;">

例:onContextMenu(BODY)を使ったもの

IMG タグ内に入れても可能です。画像だけ保存できないようにすることができます。

<IMG src="..." onContextMenu="alert('右クリックはだめぢゃ');return false;">

例:onContextMenu(IMG)を使ったもの


★ 撃退法

 ブラウザの【表示】の【ソース】でソースを表示できます。
 また、ブラウザの設定で Javascript を無効にすれば右クリックが使用できます。


2. Javascriptを使ったもの

☆ 仕組み

 これ、なぜかNNでは右クリックを禁止できませんでした。バグなんでしょうか? それともそういう仕様なんでしょうか?

 Javascript で右クリックのイベントを拾いブラウザにエラーを返すことで、右クリックメニューを表示させなくするものです。

 次のようなスクリプトを <HEAD>~</HEAD> 内に記述することで可能です。

function rightclick(e){
 if(document.all){
  if(event.button == 2){
   alert("右クリックはだめぢゃ");
   return false;
  }
 }else if(document.getElementById){
  if(e.which == 3){
   alert("右クリックはだめぢゃ");
   return false;
  }
 }
}

document.onmousedown = rightclick;

例:Javascriptを使ったもの


★ 撃退法

 ブラウザの【表示】の【ソース】でソースを表示できます。また、ブラウザの設定で Javascript を無効にすれば右クリックが使用できます。


3. Javascript+フレームを使ったもの(1)

☆ 仕組み

 Javascriptとフレームを使ったものです。
 ブラウザのソースの表示では、直接その対象フレームではなくトップのフレームしか表示されません。
 ちなみにこの例でのフレームの片側は

  「幅は1ピクセル(小さすぎて見えない)」
  「内容は空(背景しかない)」
  「フレームの境界線はなし(フレームを使っているように見えない)」
  「フレームのリサイズ禁止(フレームの境界にマウスを乗せてもマウスカーソルが変化しない)」

を設定していますので、見た目はフレームを使っているように見えません。いやなフレームですね。

例:フレームを使ったもの(1)


★ 撃退法

 まず、ブラウザの【表示】の【ソース】でトップフレームのソースを表示します。これでそれぞれのフレームのファイル名はわかります。この例では rc_3_frame_right.html です。そのフレームをブラウザで直接開けばそのソースを表示できます。この例では

http://jimita.com/web/rightclick/rc_3_frame_right.html

です。

 また、ブラウザの設定で Javascript を無効にすれば右クリックが使用できます。


4. Javascript+フレームを使ったもの(2)

☆ 仕組み

 これも Javascript とフレームを使ったものです。

 前項と違う点は、対象フレームに Javascript で仕掛けがしてあることです。上記の撃退法で対象フレームを開こうとするとフレームのトップに勝手にジャンプしてしまい、対象フレーム自体を開くことができません。

例:フレームを使ったもの ②


★ 撃退法

 ブラウザで対象フレームを開く際に、そのフレーム名の前に「view-source:」を付けましょう。この例では、

view-source:http://jimita.com/web/rightclick/rc_4_frame_right.html

となります。IEならメモ帳、NNならソースビューワが開きます。

 また、ブラウザの設定で Javascript を無効にすれば右クリックが使用できます。


5. 新規ウィンドウでメニューを消したもの

☆ 仕組み

 新規ウィンドウをJavascriptで開き、メニューバーを非表示にしたものです。ブラウザのメニューが表示されていないので「ソースの表示」などが使用できません。

例:新規ウィンドウ


★ 撃退法

 キャッシュのフォルダを見ましょう。ブラウザの設定で「キャッシュをしない」に設定しなければ、ほとんどの場合、キャッシュのフォルダにファイルがダウンロードされているはずです。

 またNNであれば「Ctrl+Uキー」を使いましょう。これはソース表示のショートカットキーです。

 ※この項に限らず、画像ファイルはほとんどの場合キャッシュフォルダにダウンロードされています。ソースを見なくてもキャッシュフォルダを見ればたいてい画像ファイルはあるはずです。


6. 新規ウィンドウでメニューを消してキャッシュされないもの

☆ 仕組み

 新規ウィンドウをJavascriptで開き、メニューバーを非表示にしますが、キャッシュされないものです。

例:キャッシュされないもの


★ 撃退法

 キャッシュされないはず・・・といっても私のマシンだとIE6ではキャッシュされてますが。そういうものなんでしょうか? まあキャッシュされなかったとして・・・

 このファイル( rc.html )のソースは表示できますからここからたどっていきましょう。

 またNNであれば「Ctrl+Uキー」を使いましょう。ソース表示のショートカットキーです。


7. 外部スクリプトファイルを使ったもの(IEのみ)

☆ 仕組み

 これはIEのみです。Javascript を使用しているのですが、Javascript を外部スクリプトファイルにしたものです。しかも、そのファイルもエンコードされています。要するに文字化け状態です。外部スクリプトファイルを保存して中を見ても、何が何だか全然わかりません。

例:外部スクリプトファイルを使ったもの


★ 撃退法

 これはそもそもIEでしか画像が表示されません。NNだと画像の表示すらしません。NNをバカにしてます。しかもIEの設定で Javascript が On になっていないと画像が表示されません。なんということでしょう。

 外部スクリプトファイルを保存してデコードして・・・ってやればできるんでしょうけど。

 まあでもここまでやっているページはほとんどないと思いますが。こんなものは作るほうもたいへんです。

 というより、そんなフザけたページは二度と見ないようにしましょう。


8. まとめ・その他

他にも方法がありますのでまとめてみました。有効かどうかはやってみましょう。

右クリックを使えるようにする方法
1. 左ボタンを押す → 左ボタンを押したまま右ボタンを押す → 左ボタンを離す → 右ボタンを離す。
2. 右ボタンを押して「右クリック禁止」などのメッセージが出る → 右ボタンを押したままEnterキーを押す → 右ボタンを離す
3. 「Shift+F10」 または 「アプリケーションキー」(右のAltとCtrlの間にあるキー)を使う。これは右クリックのショートカットキー。
4. Javascript を Off にする。
 
ソースを表示する方法
1. NNなら 「Ctrl+U」 (ソースの表示のショートカットキー)を使う。
2. URLの前に「view-source:」を付けて開く。
 
画像を保存する方法
1. 画像をデスクトップにドラッグする。
2. PrintScreenキー、または Alt+PrintScreenキーで画面ごとコピーし、ペイントソフトなどに貼り付ける。
 
新しいウィンドウでリンクを開く方法
1. IEの場合「Shift+左クリック」 、NNの場合「Ctrl+左クリック」を使う。
 
その他
1. キャッシュのフォルダを見る。
2. フリーのHPダウンロードソフトを使う。FLASHを保存できるものもある。