以下のコードを参照してください... コードの目的は、画面を右クリックするとフローティング メニューを表示し、画面を左クリックするとメニューが非表示になるようにすることです。以下は IE と Chrome では完全に動作しますが、Firefox では失敗します。私はfirebugでデバッグを試みましたが、ポジティブなものはまったくありませんでした。
$(document).ready(function () {
document.onmousedown = onMouseClick;
}
function onMouseDown(ev) {
document.oncontextmenu = onClickRightMouseButton; //to hide default menu on right click
if (ev.which == 1) {
console.log('1');
}
if (ev.which == 2) {
console.log('2');
}
if (ev.which == 3) {
var xPos = ev.clientX;
var yPos = ev.clientY;
document.onmousedown = onMouseClick;
showFloatingMenu(xPos, yPos);
}
function onMouseClick(e) {
if (e.which == 1) {
if (!(e.clientX >= xPos && e.clientX <= (xPos + 200) && e.clientY >= yPos && e.clientY <= (yPos + 50))) { //50x200 is the floating menu diamension
hideFloatingMenu();
}
}
}
}
}