禁用Shift +使用Javascript在Firefox中右键单击

时间:2013-03-17 03:04:23

标签: javascript html5 right-click

我正在开发一个RTS游戏,您可以在其中选择单位并右键单击以使其移动到某个位置。您也可以右键单击以排列您希望单位前往的点列表。

在除FF之外的所有浏览器中,这都是完美的。

在Firefox中,右键单击右键会触发上下文菜单(右键单击而不进行移位)。我正在处理contextmenu事件并调用preventDefault,但是当按住shift键时,这似乎没有在FF中做任何事情。

有没有办法在FF中阻止此行为?

我的游戏在这里:https://mod.it/4plhXo3l以及第36行的RTSBoard.js文件中的相关代码。

2 个答案:

答案 0 :(得分:2)

我设法通过将event.shiftKey设置为false,然后调用preventDefault()和stopPropagation(),然后返回false,在Firefox中使用它。然后我将文档模型的onclick事件和ondblclick事件设置为您自己使用的相同功能,以及将shiftkey的添加设置设置为false。我还必须为mouseup事件执行此操作,因为单击和拖动也会导致上下文菜单弹出。

我不确定它是否可以完全100%禁用,但这看起来是最接近你可以得到它。

答案 1 :(得分:0)

回答我自己的问题。似乎在document.onclick事件中调用preventDefault和stopPropagation解决了这个问题。

有关更多讨论,请参阅此reddit主题:http://www.reddit.com/r/javascript/comments/1agoj8/is_it_possible_to_block_the_shift_right_click/