22

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

4

10 に答える 10

51

それは専門家ではありません、とにかくこれはJavaScriptを有効にして動作します:

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

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

ただし、問題を解決せずにユーザーオプションが制限されるため、これは一般的に行うべきではないと言わざるを得ません(実際、コンテキストメニューは非常に簡単に再度有効にできます)。

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

于 2010-06-21T10:24:30.327 に答える
10

まず、ユーザーがページのソースを表示しないようにするためだけにこれを行っている場合、ユーザーはいつでもキーボードショートカットを使用してページを表示できるため、機能しません。

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

そうは言っても、これをbodyタグに追加して、右クリックを無効にします。

<body oncontextmenu="return false;">
于 2010-06-21T10:25:25.910 に答える
6

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

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

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

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

于 2010-06-21T10:22:48.350 に答える
6

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

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

于 2010-06-21T10:25:39.607 に答える
3

グーグルを介して見つけることができるこれの例がたくさんあります

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

それがどれほど迷惑で無意味であるかを説明する記事がここにあります。

于 2010-06-21T10:28:54.387 に答える
2

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

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

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

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

于 2010-06-21T10:28:16.523 に答える
2

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

<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>
于 2013-09-12T11:19:20.297 に答える
2
window.oncontextmenu = function () {
return false;
}

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

于 2014-01-15T21:40:58.783 に答える
1

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

body oncontextmenu="return false"
于 2013-06-27T13:56:48.137 に答える
0

//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>

ここをクリックしてセモを見る

于 2013-12-24T05:36:16.470 に答える