HTMLページでマウスの右クリックを無効にしたい。ユーザーが詳細を入力する必要があるページがあります。マウスの右クリックで表示されるメニューをユーザーに見せたくありません。むしろ、カスタムメニューを表示したいです。そのために利用できるプラグインがあることは知っています。しかし、私の要件はプラグインを必要としません。
とにかく、これはjavascriptが有効になっていると動作します:
document.oncontextmenu = document.body.oncontextmenu = function() {return false;}
Falseを返す前にユーザーにメッセージを表示することもできます。
ただし、問題を解決せずにユーザーのオプションを制限するため、これは一般的には実行しないでください(実際、コンテキストメニューは簡単に再び有効にできます)。
次の記事では、whyをより適切に説明し、一般的な関連問題を解決するために実行できる他のアクションについて説明します。 http:// articles.sitepoint.com/article/dont-disable-right-click
まず、あなたがあなたのページのソースを閲覧することを防ぐためだけにこれをしている場合-それは動作しません。なぜなら彼らは常にキーボードショートカットを使ってそれを表示できるからです。
次に、これを行うにはJavaScriptを使用する必要があります。ユーザーがJSを無効にしている場合、右クリックを防ぐことはできません。
つまり、これをbodyタグに追加して、右クリックを無効にします。
<body oncontextmenu="return false;">
これを行うには、 oncontextmenu イベントを使用できます。
ただし、ユーザーがjavascriptをオフにすると、これを処理できなくなります。
window.oncontextmenu = function () {
return false;
}
右クリックメニューを無効にします。
<body oncontextmenu="return false;">
はGoogle Chromeで動作します。他のブラウザについてはわかりません。
とにかく、右クリックメニューを表示するにはJavaScriptを無効にするだけです。
それをしないでください、それは非常に迷惑です。
右側のメニューには理由があり、そこに残しておく必要があります。多くのブラウザ拡張機能は、右クリックメニューにエントリを追加します。ユーザーは、アクセスするすべてのページでそれを使用できる必要があります。
さらに、右クリックメニューのすべての機能を他の方法(キーボードショートカット、ブラウザメニューなど)で使用できるため、右クリックメニューをブロックしてもユーザーを悩ますだけです。
PS:本当にそれをブロックしたいという衝動に抵抗できない場合、「右クリックは許可されていません」というポップアップを表示しないでください。
window.oncontextmenu = function () {
return false;
}
あなたを助けるかもしれません。
これを試してください:本体に以下のコードを書いて、魔法を感じてください:)
body oncontextmenu="return false"
ここで説明されているように、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>
// 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>