在开始之前,我没有询问是否阻止用户右键单击。这是用于在html5画布上进行右键单击检测。
目前,我所拥有的是:
function init() {
var canvas = document.getElementById('canvasID');\
if (canvas.getContext) {
ctx = canvas.getContext('2d');
ctx.font = '10px sans-serif';
ctx.canvas.onmousedown=ctx.canvas.onclick=onMousePressed;
ctx.canvas.onmouseup=ctx.canvas.onmouseout=onMouseReleased;
ctx.canvas.onmousemove = onMouseMove;
}
}
还有:
function onMouseMove(e) {
if (mouseDown) {
click2 = convertCoordsToTileCoords({
x: e.offsetX || e.layerX - this.style.left,
y: e.offsetY || e.layerY - this.style.top
});
var rightclick;
if (!e) e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
..等
这适用于哪些浏览器: 铬
歌剧,不,因为他们的鼠标手势和东西。 IE,不,因为画布。 但我无法弄清楚为什么它不适用于Firefox。像往常一样,如果有更好,更有效的方法来解决这个问题,我们将非常感激。
-Firstmate
Edit1:提供更多代码。
答案 0 :(得分:2)
如果你不介意使用jQuery,那么存在Right-click Plugin使这更加简单。
答案 1 :(得分:0)
在Firefox 3.6.4 / Mac中测试它按预期工作:
document.onclick = function(e) {
var rightclick;
if (!e) e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
alter(rightclick);
}
也许您没有正确附加点击处理程序?