最初に
google で右クリック禁止をキーワードにして検索して見ました。
トップ10ぐらいまでのサイトに書いてある右クリック禁止についての内容は以下のようなものです。
記載例1
ブラウザの右クリックには、文字コードの変更やナビゲーションのための進む、戻るなどがあるわけですが、右クリックを禁止するという嫌がらせをしている困ったWebサイトがあります。
右クリックを禁止している人やしようとしている人たちは、PublicなWebへ公開しているということを忘れている気がします。
公道に物を置いておきながらそれを見るなとかいっているようなものなので、見られたくないのならばサーバーにパスワード認証を付ければよいと思うんですが……。
『右クリック禁止』対策委員会とか「右クリック禁止」撲滅同盟などがあるように右クリック禁止は嫌われているので、アクセス数を増やすということとは相反する行為。
よってアクセス数を増やす気がないのならば、見てもらいたい人にだけパスワードを教えればよいわけです。
HTMLを見られたくないというだけならば、ページを暗号化しておきJavaScriptで表示時に復元させるほうが嫌われる右クリック禁止よりよほどマシだと思います。
上記は記載例1サイトの内容を抜粋したものです。
若い人のようですが、この人は右クリック禁止のアラート表示に頭にきて右クリック禁止についてと右クリック禁止の回避方法をホームページ上に書いております。
私も右クリック禁止のアラート表示には感心しませんが、この人の考え方にも同意できません。
右クリック禁止の問題点と称してかなり無理なこじつけを行っている気がします。
例えば、右クリックには、文字コードの変更やナビゲーションのための進む、戻るなどがあるわけですが、右クリックを禁止するという嫌がらせをしている困ったWebサイトがあります。は文字コードの変更やナビゲーションのための進む、戻るが右クリックでしか出来ないような操作であるかのように記載していますし、右クリックを禁止している人やしようとしている人たちは、PublicなWebへ公開しているということを忘れている気がします。は、右クリック禁止とPublicなWebへ公開しているということの関係が今ひとつはっきりしません。(私には無関係に思えるのですが)
自分の考えを正当化するために、『右クリック禁止』対策委員会とか「右クリック禁止」撲滅同盟などがあるように右クリック禁止は嫌われていると記載しておりますが、それだけで右クリックを禁止が邪悪な存在であると決め付けるのは根拠が弱いだけでなく、何よりも当人の考えが世間的に認められている事を強調したいための見苦しさ(言い訳がましさ)を感じてしまいます。
右クリック禁止することを、公道に物を置いておきながらそれを見るなとかいっているようなものとしているのは、サイトを公開することと右クリックを禁止することが矛盾していると考えた、かなり無理な例え(こじつけに近い)でしょう。
記載例2
All About の右クリック禁止についての解説も検索の上位でピックアップされますが、内容は右クリック禁止の解除方法の説明と右クリックを禁止しても意味が無いから止めるようにとの結論です。
ほとんどの解説サイトは、右クリック禁止にしても無駄だから、しない方が良いと結論付けております。
この考え方が、右クリック禁止についての常識になっていると考えて良いと思います。
私も右クリックを禁止にしても、ソースや画像をコピーされるのを防ぐ事はできないと思っています。
特にソースは無理でしょうが、画像をコピーする人は圧倒的に右クリックのコンテキストメニューを利用する人が多いですから、右クリック禁止にしておけば保存したいと思った人が簡単に保存できないことを知り、むかつくだろうと言う事は容易に想像できます。
知識のある人は、それでも別の方法で画像をコピーできるでしょうが、知識のない人はあきらめるよりないでしょう。
100人の画像をコピーしたい人がいて、40人の人が画像をコピーできなくてあきらめたならば、右クリックを禁止にすることは有効な方法であると私は考えます。
特に私は、出所のはっきりしない画像を掲載することがありますので、それらをコピーされたりゲーム画面の画像をコピーされたり閲覧されるのは極力防ぎたいと考えているからです。
以前に野球拳ゲームを作成しましたが、次に表示する画像を見られてしまうとゲームをする楽しさが半減してしまいます。
私はこの時に、画像の所在を知られて画像の閲覧やダウンロードを禁止させる必要性があることを感じました。
右クリック禁止は、決して無意味(無駄)なものではないと考えております。
右クリック禁止の方法
右クリック禁止の方法と言っても、私が特別な方法を知っている訳ではありません。
一般的な方法で十分だと思います。
私の場合は、画像を右クリックで簡単に保存できないようにする事でしたから、その方法について記載したいと思います。
他の方法も組み合わせて、何とか4割程度の人がコピーをあきらめてくれれば、十分だと考えています。
Mac では使えないとか、古いバージョンのブラウザでは効果が無いことも百も承知しております。
ブラウザをIEに限定すれば8割以上の人がコピーできないようにすることも可能でしょうが、いくらシェアが60%程度あるとは言っても、廃れ行くブラウザだけでしか閲覧できないようなページを作成すべきではないでしょう。
そこまでして隠したいような画像でもありませんから。
一般的に右クリック禁止のJAVAScript のコードは以下のようなものです。
<body oncontextmenu="alert('右クリックは禁止!');return false;">
body タグに上記のように書きますが、アラートが出るので嫌われます。
この方法は簡単で良いですが、どうせ書くならアラートは消して下記のようにすべきでしょう。
<body oncontextmenu="return false;">
この方がアラートが出ない分、嫌われ度は低くなります。
特定の画像に限定するなら、 <img src="画像.jpg" oncontextmenu="alert('右クリック禁止!');return false;"> のように記載します。
他のサイトの設定例を調べていたら、oncontextmenu を使わないで下記のように記載している人もおりました。
<SCRIPT language="javascript"> <!-- function rightclick(e){ if(document.all){ if(event.button == 2){ alert("右クリックはだめぢゃ"); return false; } }else if(document.layers||document.getElementById){ if(e.which == 3){ alert("右クリックはだめぢゃ"); return false; } } } if(document.all){ document.onmousedown = rightclick; }else if(document.layers||document.getElementById){ document.captureEvents(Event.MOUSEDOWN); document.onmousedown = rightclick; } // --> </SCRIPT>
古い内容なのでコードの書き方も古いですが、実際に動かして見るとブラウザによっては正常に動作しませんでした。
で、私のやり方ですが下記のように記載しております。
<script type="text/javascript" language="JavaScript"> function noContextMenu(e){ window.opener = window; var win = window.open(location.href,"_self"); win.close(); return false; } document.oncontextmenu = noContextMenu; </script>
やっている内容は同じなのですが、コードを head 間に入れている事と、右クリックを押した時に終了するようにしています。
いきなり右クリックは禁止!などとアラートが出るとむかつく人は多いですが、右クリックを画面の終了に割り当てていると動作に納得してくれる人も出てきます。
このコードには、IE 対策として終了のやり方にちょっとしたテクニックを使っているのですが、その解説は別の機会にでも行いたいと思います。
又、FireFox では、初期設定でお使いの場合には終了出来ません。
実際の動作例
実際に画像を掲載している ギャラリーページ で拡大画像の右クリック禁止を行っております。
私は画像をダウンロードされにくい方法として FLASH を使った方法なども試しているのですが、ここでは普通のやり方で行っています。
IEでご覧いただいている方は、終了してしまうので実寸画像のダウンロードは難しいと思いますが、他のブラウザではどうでしょうか。
目標は、4割の人に掲載している画像のダウンロード(保存)を諦めさせることなのですが、ちょっと厳しいかも知れません。
画像の公開は行うけれども画像のダウンロードはさせない(難しくする)事が、本当に無意味な事なのでしょうか。
私は画像を色の3原色に分解して表示の時に合成させた事もあったのですが、これでも画像をコピーできるブラウザがありましたから笑ってしまいました。(さすがに絵の所在場所は不明でしたが)
3原色の状態でイメージを保存して、表示の際には FLASH で交互に表示させて目の残像を利用して表示させるような方法なら画像のキャプチャーも難しいのではないかと思っておりますが、試したことはありません。
究極の画像隠蔽方法かどうか、どなたか、やって見ていただけませんか?