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