addeventlistenerまたはelement.on*に添付されたイベントハンドラーで「false」
-
27-09-2019 - |
質問
右にこれを最初に邪魔しましょう。はい、コンテキストメニューを非表示にしたいです。いいえ、私は誰かが私のページからコンテンツを持ち上げないようにしようとはしていません。その目的の使用は、ブラウザ内ゲームの入力であり、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(...)
名前が示すように、 追加 イベントに既に添付されているハンドラーに加えてハンドラー。
所属していません StackOverflow