質問

右にこれを最初に邪魔しましょう。はい、コンテキストメニューを非表示にしたいです。いいえ、私は誰かが私のページからコンテンツを持ち上げないようにしようとはしていません。その目的の使用は、ブラウザ内ゲームの入力であり、Webページ上の特定の領域に制限されます。

イデオロギーから技術への移行...

var mouse_input = function (evt) {
    // ...
    return false;
}

document.onmousedown = mouse_input; // successful at preventing the menu.
document.addEventListener('mousedown', mouse_input, true); // unsuccessful

誰かがなぜ私に説明してもらえますか addEventListener バージョンでは、コンテキストメニューの発射を停止できませんか?私が見ることができた唯一の違い サファリ's Web検査官 それでした document.onmousedown 持っていた isAttribute それは真実であった価値 addEventListener バージョンはfalseと同じ値でした。

役に立ちましたか?

解決

だから私の実るのない検索は突然実り多いものになりました。

var mouse_input = function (evt) {
    evt.preventDefault();
}

document.addEventListener('contextmenu', mouse_input, false);

のために働きます サファリ, Firefox, オペラ. preventDefault() 通常のアクションが発生しないようにします。私は対応するために耳を傾けたイベントを変更しなければなりませんでした サファリ とにかくそれはより論理的です。詳細:実装する機能 EventListener 値を返すべきではありません return false 効果がありませんでした。

他のヒント

違いを説明するために.. element.onmousedown = somefunction; 絶対的な割り当てです。あなたは 交換 要素のイベントハンドラー。 element.addEventListener(...) 名前が示すように、 追加 イベントに既に添付されているハンドラーに加えてハンドラー。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top