• ベストアンサー

スタイルシートでの「右クリック禁止」の書き方

右クリック禁止のタグは↓を使っています <body oncontextmenu="return false;"> これをスタイルシートで使う場合の記述は どのように書くのでしょうか。 ご教授 お願いいたします。 なお 右クリック禁止しても 簡単に破られるのは承知の上です

  • tmi
  • お礼率91% (224/244)

質問者が選んだベストアンサー

  • ベストアンサー
  • MAN_MA_RUI
  • ベストアンサー率41% (426/1024)
回答No.4

> JAVAは敷居高いので各ページに<body oncontextmenu="return false;"> > 埋め込んだ方が無難かなと思いました JavaとJavaScriptは別物であり、後者の略称がJavaであるわけでもなく、また後者の略称としてJavaという言葉を用いるのも適切ではありません。 http://e-words.jp/w/Java.html http://e-words.jp/w/JavaScript.html CSSはレイアウトの定義を行うものだし、右クリック禁止で使っているoncontextmenu="return false;"自体がJavaScriptです。 oncontextmenu,onload,onmousemove,onclick,ondoubleclickなどマウスやキーボードなどの特定の動作を感知して何らかのアクションを起こすものは全てHTMLではありません。HTMLの属性として利用できるものであってもHTMLを使用しているわけではないという状態です。 で、CSSを使って同様の動作を実現することは不可能です。ブラウザの挙動に関して何らかの制御を行うものはHTMLないしJavaScriptで行うのが普通です。 (独自拡張の類まで入れるとCSSの設定でブラウザのシステム関連を呼び出すものはありますけど…。) さらに、その方法だとIEだけしか制御できません。 下記に挙げたようなパターンや参考リンクにあるパターンのほうが効果的です。 <script type="text/javascript"> <!-- function myNoMenu(){ event.cancelBubble = true event.returnValue = false; return false; } function myEventFx(myEvent){ if(myEvent.button && myEvent.button == 2){ alert("右クリックは禁止"); return false; } } function myEventIE(){ if(event.button == 2){ myNoMenu(); alert("右クリックは禁止"); return false; } } function myEventNN(myEvent){ // N4 if(myEvent.which == 3){ alert("右クリックは禁止"); return false; } } if(document.getElementById){ if(window.opera){ window.addEventListener("mousedown",myEventFx,true); } else if(window.addEventListener){ document.oncontextmenu = myEventFx; } else if(document.all){ document.oncontextmenu = myNoMenu; document.onmousedown = myEventIE ; } else if(document.layers){ document.captureEvents(Event.MOUSEDOWN); document.onmousedown = myEventNN ; } } //--> </script> (ちなみにこの事例ではアラートが嫌がられることを認識しつつもそうしないと右クリックを制御できない環境があるためあえてそうしています。)

参考URL:
http://www.mozilla.gr.jp/standards/webtips1002.html
tmi
質問者

お礼

MAN_MA_RUI様 回答ありがとうございます!!! >oncontextmenu="return false;"自体がJavaScriptです html言語だとばかり思っていました 勉強になりました JavaとJavaScript 私の頭の中 はっきりいって 渾然一体となっています・・・・ これも勉強になりました 参考URLありがとうございました!!!

その他の回答 (3)

  • hachi_08
  • ベストアンサー率58% (44/75)
回答No.3

JavaScriptでやるなら、以下の手順はどうでしょうか? ///////////////////////////////////////////////////////// 【1】ANo.2さんが記載してくれた参考URLに入って、ページ真ん中あたりの水色が背景色になっているスクリプト記述部分をコピー。 (1行目の「<script language="Javascript">」と、最終行の「</script>」はコピーしなくてもいいです) 【2】コピーした文をメモ帳などに貼り付けて、○○.jsという名前をつけて保存します。 【3】右クリックを禁止したいページの<head> ~~ </head>内に <script src="○○.js" type="text/javascript"></script> と書きます。 ///////////////////////////////////////////////////////// 右クリックを禁止したいページには全ページ書き込むことになるので <body oncontextmenu="return false;"> を埋め込むのと手間的にはそんなに変わらないかもしれませんが、若干スマート?かも…。

tmi
質問者

お礼

hachi_08様 2度も回答、アドバイスいただき ありがとうございます!!! さっそく 実行してみます ありがとうございました!!!

  • 345itati
  • ベストアンサー率48% (795/1639)
回答No.2

えーと、CSSというのは基本的に文字の色とか配置とか、デザインを受け持つものであって、CSSに右クリック禁止のような命令を受け持つ要素はありません。 強いて言えば、javascriptで書く事になると思います。これとて、javascriptを無効にしていれば何の意味も成しませんが。 参考→http://www.broadband-xp.com/hidesource/contextmenu.html

tmi
質問者

お礼

345itati様 早々の 回答ありがとうございます スタイルシート使えば 全ページ一括で右クリ禁止できると 思っていたら・・・できないのですね。。。。。 JAVAは敷居高いので各ページに<body oncontextmenu="return false;"> 埋め込んだ方が無難かなと思いました ありがとうございました。

  • hachi_08
  • ベストアンサー率58% (44/75)
回答No.1

cssで右クリック禁止をさせる記述は存在しないと思います。 JavaScriptなどではダメなのでしょうか?

tmi
質問者

補足

hachi_08様 はやばやの回答ありがとうございます 私の 浅い知識だと スタイルシート使えば 「全てのページ」に各種設定が 一律に思いのままできる・・・・と、思っていました(恥) そんなに甘くなかったのですね。。。。 JavaScriptでできるのなら、参考になるURL知っていたら お願いいたします

関連するQ&A

  • 右クリック禁止タグについて

    右クリック禁止のタグを調べていたら、 <BODY oncontextmenu="alert('ここに文字');return false;"> という短いのと <SCRIPT language=JavaScript>という書き出しで始まる長いのがあるようなのですが、 この二種類は何が違うのでしょうか?

    • ベストアンサー
    • HTML
  • 画像をクリックしたときに右クリック禁止を発動したい

     Bodyタグなどに「oncontextmenu=return false」と書くと、右クリックを禁止できますが、最初から右クリックを禁止するのではなく、ある特定の画像をクリックしたときに発動させたいのですが。  それを例えばダイナミックHTML(?)的に「<img src="xxx.jpg" onmousedown="document.body.background='壁紙'">」のようなやり方を応用して、「oncontextmenu=return false」を発動できないか試してみましたが、(文法を根本的に知らないので)どうも上手く出来ません。  (※<img src="a.jpg" oncontextmenu=return false>と書けば、その画像の右クリックだけは禁止できますが)  Javaスクリプトを使えばこのコントロールが可能かと思いますが、もしこの「onmousedown="document.body.background='壁紙'"」レベルの単純な指示で、右クリック禁止が発動できる方法が何かございましたら、お教えいただければ幸いです。 (※右クリック禁止をさせても、結局のところソースを見られたりするのを禁止する事は出来ない、というのは知っています。そういう内容の質問ではありません)

    • ベストアンサー
    • HTML
  • HTMLのbodyタグをいじって右クリック禁止に

    ブログ記事がコピペされて困っています。 そこで、HTMLのbodyタグに「oncontextmenu="return false;"」を記述する方法で、右クリックできないようにしようと思っています。 そのやり方についてなのですが、HTMLの中の <body> の部分の<>内に、bodyに続く形で上記のコードをはめ込んだので大丈夫でしょうか。

  • 右クリック禁止が効かないのですが

    作成しているHPで右クリック禁止を設定したのですが、一部のPCで効きません。 「右クリック禁止」の表示は出るのですが、「OK」ボタンを押すと、 従来通り、保存などのメニュー画面が出てきます。 OSはWindowsXP。IE6使用です。 何が要因なのでしょうか。 ちなみに<body oncontextmenu="alert('右クリック禁止');return false;">を使いました。 大変困っております。 どうぞよろしくお願い致します。

    • ベストアンサー
    • HTML
  • CSSにコピー禁止タグを入れるにはどう書けばいいですか

    画像とかのコピーをされるのを禁止させるとき 右クリックをすると 窓が開いて禁止できるタグがhtmlにありますが、 CSSしかカスタマイズできない所でCSSタグで禁止させるタグはありませんか? htmlのbodyダグの後ろに<body onContextmenu="alert('★複製コピー禁止★');return false;">を書けば右クリックができなくなります。 CSSはどう書けばいいんでしょうか?

  • フレームでの右クリック禁止

    フレームを使って、画面を分割しているのですが、単体のHTMLを開くと次に示すJavascriptで右クリックが出来なくなりますが、フレームにしてしまうと、出来なくなってしまいます。 フレームにしても右クリックを禁止するには、どうしたらよいでしょうか? ご教授ください。よろしくお願いします。 <script language="JavaScript" type="text/javascript"> <!-- function contextmenu() { alert("右クリックは、使用できません。"); return false; } document.oncontextmenu = contextmenu(); --> </script>

  • 動画上での右クリック禁止について

    右クリックを禁止するJavaScriptを外部ファイルに 書いて、動画のプロパティなどが見づらいように したいと思っているのですが、うまくいきません。 oncontextmenuを無効にする形で、 HTMLや画像の上では、右クリックを無効にできたのですが、埋め込んだWindowsMediaplayerの動画の上で 右クリックをすると、普通にcontextmenuが出てきて しまいます。 どのようにしたら、動画ファイル上での右クリックを禁止にすることができるでしょうか? どなたか教えてください。よろしくお願いします。 外部JSファイルに書いた内容は、下記のとおりです。 function DisableOnContextMenu(ev) { return false; } function DisableContextMenu(ev) { if (ev) { if (ev.button && ev.button == 2) { // W3C DOM2 return false; } else if (!ev.button && ev.which == 3) { // N4 return false; } else if (navigator.platform.indexOf("Mac")!=-1 && navigator.appName == "Netscape") { return false; } } else { if (event && event.button && event.button == 2) { // IE return false; } } } if (navigator.appName == "Netscape" && !(navigator.platform.indexOf("Mac")!=-1)) { document.captureEvents(Event.MOUSEDOWN); } document.onmousedown=DisableContextMenu; document.oncontextmenu=DisableOnContextMenu;

  • 右クリック禁止スクリプト挿入法

    右クリック禁止スクリプト挿入法 http://home.wi-wi.jp/lab/008/ こちらのページを教えていただきまして、さっそく試行錯誤してみました。 このページ内では、2つの画像と禁止領域と許可領域のコード があり僕の場合とりあえず、1つの画像を右クリック禁止にしたいので、 <body oncontextmenu="return prohibitRight()"> <p><img src="test123.jpg" class="prohibit" title=""></p> <script> function prohibitRight(e,btn, cn){ e=e||event; btn=e.button||e.which; cn=(e.target)?e.target.className:e.srcElement.className; if(btn<2 || cn.search(/prohibit/i)==-1 ) return true; e.defaultValue=null; e.returnValue=null; if(e.stopPropagation){ e.stopPropagation(); e.preventDefault(); } return false; } window.oncontextmenu=prohibitRight; window.onclick=prohibitRight; </script> と省略し一個の画像だけ禁止にするように、適当な場所へコードを埋め込んでみました。 がうまく行きません。 どういった方法をとれば、上のURLのサイトのように一個画像に右クリック禁止 コードを埋め込む事ができますか?よろしくお願いいたします。

  • 特定の入力フォームだけ右クリック禁止

    ある特定の入力フォームだけコピーペーストを禁止したいです。 http://kaworu.jpn.org/kaworu/2008-07-05-1.php このページを参考にコピーペーストできない入力フォームを作りましたが、 ある人から右クリックでコピーペーストできると言われました。 使用OS、ブラウザは不明です。 onContextMenu="return false;"以外に特定の入力フォームの右クリックメニューを出さない方法はありますでしょうか。 検索してもページ全体を右クリック禁止にする方法ばかり出てきて困っています。

  • ブログ上の記事をコピーできなくするには

    ブログ上に掲載してある、文章や画像を勝手にコピーできないようにしたいです。 右クリック禁止タグ <body>ブログ上文章<body oncontextmenu="return false"> を使っても、キーボードの〔Ctrl〕+〔C〕キーでコピー可能になってしまいます。 右クリックと範囲指定コピーができないタグなどあれば教えていただきたいです。 ご存知の方おられましたら、よろしくお願いします。

専門家に質問してみよう