右クリックを禁止する(カスタマイズメニューの表示)このホームページはJavascriptを多用しているため、javascriptがoffのままでは十分にご利用になれません。(結論)完全無欠な解決策はあるのか?右クリックを禁止する(カスタマイズメニューの表示)待望のHTML暗号化ソフト誕生!!株式会社プランセスの全面協力の元、HTML暗号化ソフト「SHTML」を2005年7月11日にリリースしました。Javascriptの知識が全くない方でも利用可能なように設計されています。単純な右クリック戦略の限界1.どんなに頑張っても右クリックを禁止できないブラウザが、ごく一部存在する。2.右クリック禁止を解除できるproxyソフトや、ツールが存在する。3.Javacriptをoffにすれば右クリックし放題になる。SHTMLなら、ソースが全て暗号化+右クリック禁止されているので、仮に右クリックされてもJavascriptやスタイルシート、動画、midiファイルをプロテクトできます。(特定の一部ブラウザによる右クリック時の画像保存への対抗策も現在、開発準備中です。)最近、右クリック禁止のサイトが増えてきました。右クリックしようとすると、「右クリック禁止です」というようなalertが表示されるわけです。このメッセージの出し方の是非については後ほど見ていきますが、とりあえず右クリック(Macの場合はcontrolキー+マウスクリック)できないようにするタグについて考えてみます。false">というコードが紹介されていますが、このコードはWindows版IE5以上もしくはMac版ネットスケープ6.1では右クリックの禁止を確認できましたが、他のブラウザでは右クリック可能です(参照:テスト環境一覧)。ネットスケープ4.XやWindows版IE4.Xでも動くようにしようとすれば、下記のようなコードが必要です。「右クリック」というのは一般的にはWindowsでの話です。Macの標準的なマウスはワンボタンマウスのため、右クリックはなく、controlキーと一緒に左クリックするとWindowsのようなメニューがマウスクリックした地点の近辺に現れます。(もちろん、Mac用マウスでも右クリックができるマウスは市販されていますし、Mac対応をうたっていない通常のWindows用マウスでも、MacのUSBに差し込んだら、問題なく使え、右クリックも自由にできるようになったたというケースを私も知っています。)ただ、一般的にはMacには右クリックという概念そのものが希薄なわけですから、「右クリック禁止」というよりは、このメニューが現れないようにするスクリプトと言った方が、より正確であると思います。このメニューのことをコンテクストメニュー(contextmenu)と言います。{//Mac版IE5ではコマンドキーを使ったショートカットでソースを見ることができます。{alert("コンテクストメニューは利用できません。{alert("コンテクストメニューは利用できません。noright(){alert("コンテクストメニューは利用できません。if(navigator.userAgent.indexOf("Netscape6")!=-1){//onmousedownだとalertが表示されますが、//同時にデフォルトのコンテクストメニューも表示されてしまいます。mdown;}//--></script>このコードを埋め込んだコンテクストメニューの表示を抑制するようにしたサンプルはこちら(Mac版IE4.5では動作しません。コントロールキーを使ってソースを表示できます。その他のブラウザでもテスト環境以外のブラウザでは動作しない可能性があります。これはあくまでもコンテクストメニューの表示を抑制しているに過ぎません。ソースを見る方法はいくらでもあります。ツールバーで、IEなら「表示→ソース」で、ネットスケープなら「表示→ソースの表示」で簡単に見ることができてしまいます。そこで、このツールバーを消す方法を次に考えてみましょう。右クリックする目的は何も「ソースを見ること」だけでなく、「印刷」が目的であったり、「前のページに戻ったりする」ことである場合もあるでしょう。「お気に入りに追加」しようとしてくれているのかもしれません。リンク先を別ウインドウで表示させたいと思っているだけかもしれません。右クリックするたびに、alert(文字通り、警告)が表示されて、何か悪いことでもしているかのように言われて、非常に使い勝手が悪いです。Windowsの「このプログラムは不正な処理を行いましたので強制終了します」と同じぐらいに、ユーザービリティー最悪です。確かに、alertが表示されないで、右クリックできないのも、パソコンが壊れたのかなと一瞬あせりますので、何か代替のものが欲しいですね。ブラウザの自動判別によるサンプルをこちらに準備しました。ブラウザのタイプを自動検出して、それぞれのページにリダイレクトさせています。1ページにまとめてブラウザごとに処理を変えてもいいのですが、そうすると重くなりますし、煩雑になりますので、最初にブラウザを判別しています。ブラウザ判別後、下記のようなそれぞれのブラウザ用のページにlocation.hrefで飛ばしています。ご利用になられているブラウザとは違うページを閲覧されても正しく動作しません。7.0・6.0・5.5・5.01用ページネットスケープ4.X用ページ(Win、Mac)ネットスケープ6.01用ページ(Win、Mac)Firefox(Win、Mac)、Safari、ネットスケープ6.1、7.1用ページ(Win、Mac)Mac版IE5.x用ページまた、Mac版IE4.5では、コマンドキーを使ったコンテクストメニューの表示をイベントとして取得することができなかったため、代替表示メニューのサンプルもありません。次のページでは、ブラウザのツールバーを表示させないことにより、HTMLソースを見られなくする方法を考えてみましょう。Next連絡先:info@broadband-xp.com(免責事項)このホームページの内容に起因する如何なるトラブルに対しても責任を持ちえません。自己責任でご利用ください。