右クリックを禁止する(カスタマイズメニューの表示)
たまに、<body bgcolor=#FFFFFF oncontextmenu="alert('右クリックは禁止です');return false">というコードが紹介されていますが、このコードはWindows版IE5以上もしくはMac版ネットスケープ6.1では右クリックの禁止を確認できましたが、他のブラウザでは右クリック可能です(参照:テスト環境一覧)。ネットスケープ4.XやWindows版IE4.Xでも動くようにしようとすれば、下記のようなコードが必要です。 また、「右クリック」というのは一般的にはWindowsでの話です。Macの標準的なマウスはワンボタンマウスのため、右クリックはなく、controlキーと一緒に左クリックするとWindowsのようなメニューがマウスクリックした地点の近辺に現れます。(もちろん、Mac用マウスでも右クリックができるマウスは市販されていますし、Mac対応をうたっていない通常のWindows用マウスでも、MacのUSBに差し込んだら、問題なく使え、右クリックも自由にできるようになったたというケースを私も知っています。) ただ、一般的にはMacには右クリックという概念そのものが希薄なわけですから、「右クリック禁止」というよりは、このメニューが現れないようにするスクリプトと言った方が、より正確であると思います。このメニューのことをコンテクストメニュー(contextmenu)と言います。 【広告】□■業界最安値のDTI高速モバイルプラン!月額790円?■□
このコードを埋め込んだコンテクストメニューの表示を抑制するようにしたサンプルはこちら(Mac版IE4.5では動作しません。つまりコントロールキーを使ってソースを表示できます。その他のブラウザでもテスト環境以外のブラウザでは動作しない可能性があります。)です。 しかしながら、これはあくまでもコンテクストメニューの表示を抑制しているに過ぎません。ソースを見る方法はいくらでもあります。ツールバーで、IEなら「表示→ソース」で、ネットスケープなら「表示→ソースの表示」で簡単に見ることができてしまいます。そこで、このツールバーを消す方法を次に考えてみましょう。
【広告】SDガンダム外伝 コンプリートボックス vol.2 【広告】CDを買うなら楽天 と言いつつ、その前に、今更ながらですが、そもそもこの「右クリック禁止」ってとても鬱陶しくありませんか? 右クリックする目的は何も「ソースを見ること」だけでなく、「印刷」が目的であったり、「前のページに戻ったりする」ことである場合もあるでしょう。「お気に入りに追加」しようとしてくれているのかもしれません。リンク先を別ウインドウで表示させたいと思っているだけかもしれません。右クリックするたびに、alert(文字通り、警告)が表示されて、何か悪いことでもしているかのように言われて、非常に使い勝手が悪いです。Windowsの「このプログラムは不正な処理を行いましたので強制終了します」と同じぐらいに、ユーザービリティー最悪です。 ただ、確かに、alertが表示されないで、右クリックできないのも、パソコンが壊れたのかなと一瞬あせりますので、何か代替のものが欲しいですね。そこで、デフォルトのコンテクストメニューに代わる代替メニューを表示させるというのはどうでしょうか? ブラウザの自動判別によるサンプルをこちらに準備しました。ブラウザのタイプを自動検出して、それぞれのページにリダイレクトさせています。1ページにまとめてブラウザごとに処理を変えてもいいのですが、そうすると重くなりますし、煩雑になりますので、最初にブラウザを判別しています。
ブラウザ判別後、下記のようなそれぞれのブラウザ用のページにlocation.hrefで飛ばしています。ご利用になられているブラウザとは違うページを閲覧されても正しく動作しません。予めご了承ください。
次のページでは、ブラウザのツールバーを表示させないことにより、HTMLソースを見られなくする方法を考えてみましょう。
連絡先:info@broadband-xp.com (免責事項)このホームページの内容に起因する如何なるトラブルに対しても責任を持ちえません。必ず自己責任でご利用ください。 |