我正在开发一个网络应用程序,我想在一个元素上执行不同的操作,无论我是左键还是右键单击它.
所以我首先添加了一个click
用jQuery 处理事件的函数,然后添加了第二个函数来处理oncontextmenu
我的元素的属性.
这在Chrome和IE中运行良好,但在Firefox中出现问题:当我右键单击一个元素时,我的函数会令人惊讶地调用左键单击,然后调用处理右键单击的函数.
当我右键单击时,如何让Firefox不调用左键单击功能?
是的,浏览器传统上向onclick处理程序发送右键单击,event.which属性设置为3而不是1. IE上使用的是ontexttext,而Firefox除了通常的onclick之外还接收了oncontextmenu.为了满足浏览器的需要,您必须捕获这两个事件 - 或找到一个可以为您完成的插件.
请注意,即使已整理,您仍然无法保证获得右键单击事件或能够禁用标准上下文菜单.由于许多网页滥用了这种能力,因此在许多浏览器中它都是不可用的,有时默认情况下是禁用的(例如在Opera中).如果您的应用提供了右键单击操作,请始终确保有其他方法可以实现这些操作.