我正在开发一个RTS游戏,您可以在其中选择单位并右键单击以使其移动到某个位置。您也可以右键单击以排列您希望单位前往的点列表。
在除FF之外的所有浏览器中,这都是完美的。
在Firefox中,右键单击右键会触发上下文菜单(右键单击而不进行移位)。我正在处理contextmenu事件并调用preventDefault,但是当按住shift键时,这似乎没有在FF中做任何事情。
有没有办法在FF中阻止此行为?
我的游戏在这里:https://mod.it/4plhXo3l以及第36行的RTSBoard.js文件中的相关代码。
答案 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/