web-dev-qa-db-ja.com

Webページでマウスの右クリックを無効にする方法は?

HTMLページでマウスの右クリックを無効にしたい。ユーザーが詳細を入力する必要があるページがあります。マウスの右クリックで表示されるメニューをユーザーに見せたくありません。むしろ、カスタムメニューを表示したいです。そのために利用できるプラグインがあることは知っています。しかし、私の要件はプラグインを必要としません。

18
User 1034

とにかく、これはjavascriptが有効になっていると動作します:

document.oncontextmenu = document.body.oncontextmenu = function() {return false;}

Falseを返す前にユーザーにメッセージを表示することもできます。

ただし、問題を解決せずにユーザーのオプションを制限するため、これは一般的には実行しないでください(実際、コンテキストメニューは簡単に再び有効にできます)。

次の記事では、whyをより適切に説明し、一般的な関連問題を解決するために実行できる他のアクションについて説明します。 http:// articles.sitepoint.com/article/dont-disable-right-click

44
Andrea Zilio

まず、あなたがあなたのページのソースを閲覧することを防ぐためだけにこれをしている場合-それは動作しません。なぜなら彼らは常にキーボードショートカットを使ってそれを表示できるからです。

次に、これを行うにはJavaScriptを使用する必要があります。ユーザーがJSを無効にしている場合、右クリックを防ぐことはできません。

つまり、これをbodyタグに追加して、右クリックを無効にします。

<body oncontextmenu="return false;">
7
romiem

これを行うには、 oncontextmenu イベントを使用できます。

ただし、ユーザーがjavascriptをオフにすると、これを処理できなくなります。

window.oncontextmenu = function () {
   return false;
}

右クリックメニューを無効にします。

6
rahul

<body oncontextmenu="return false;">はGoogle Chromeで動作します。他のブラウザについてはわかりません。

とにかく、右クリックメニューを表示するにはJavaScriptを無効にするだけです。

6
cHao

Google で見つけることができるこの例はたくさんあります

ただし、ユーザーはJavascriptをオフにして、この非常に迷惑な「機能」を停止できます。実装する前にこれについて本当に考えるべきだと思います。それはあなたのコンテンツを本当に保護するつもりはありません(それがあなたが達成しようとしているものであるなら)。

here という記事があり、それがどれほど厄介で無意味であるかを示しています。

3
codingbadger

それをしないでください、それは非常に迷惑です。

右側のメニューには理由があり、そこに残しておく必要があります。多くのブラウザ拡張機能は、右クリックメニューにエントリを追加します。ユーザーは、アクセスするすべてのページでそれを使用できる必要があります。

さらに、右クリックメニューのすべての機能を他の方法(キーボードショートカット、ブラウザメニューなど)で使用できるため、右クリックメニューをブロックしてもユーザーを悩ますだけです。

PS:本当にそれをブロックしたいという衝動に抵抗できない場合、「右クリックは許可されていません」というポップアップを表示しないでください。

1
nico
window.oncontextmenu = function () {
return false;
}

あなたを助けるかもしれません。

1
Simpal Kumar

これを試してください:本体に以下のコードを書いて、魔法を感じてください:)

body oncontextmenu="return false"
1
John

ここで説明されているように、Javascriptおよび/またはHTML属性(とにかくJavascriptイベントハンドラー)を使用してこれを行うことができます。 http://www.codeproject.com/KB/aspnet/Disabling_the_right_click.aspx

<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
Function disableclick(event)
{
  if(event.button==2)
   {
     alert(status);
     return false;    
   }
}
</script>

そして

<body oncontextmenu="return false">
...
</body>
0
Nikunj Aggarwal

// Javaスクリプトコードを使用して右クリックスクリプトを無効にする

<script language=JavaScript>
//Disable right click script
var message = "";
///////////////////////////////////
function clickIE() {
    if (document.all) {
        (message);
        return false;
    }
}

function clickNS(e) {
    if (document.layers || (document.getElementById && !document.all)) {
        if (e.which == 2 || e.which == 3) {
            (message);
            return false;
        }
    }
}
if (document.layers) {
    document.captureEvents(Event.MOUSEDOWN);
    document.onmousedown = clickNS;
} else {
    document.onmouseup = clickNS;
    document.oncontextmenu = clickIE;
}

document.oncontextmenu = new Function("return false")
</script>

デモを見るにはここをクリック