我正在开发一个网络应用程序,在该应用程序中,无论我左键单击还是右键单击某个元素,我都希望对它执行不同的操作。
所以我首先添加了一个函数来处理click
使用 jQuery 事件,然后添加第二个函数来处理oncontextmenu
我的元素的属性。
这在 Chrome 和 IE 中运行良好,但在 Firefox 中会导致问题:当我右键单击某个元素时,处理左键单击的函数会意外地被调用,并且then我处理右键单击的函数被调用。
如何让 Firefox 在右键单击时不调用左键单击功能?
是的,浏览器传统上将右键单击发送到 onclick 处理程序,其中事件.which http://docs.sun.com/source/816-6408-10/event.htm#1200787属性设置为 3 而不是 1。IE 使用 oncontextmenu 代替,然后 Firefox 除了通常的 onclick 之外还选择了 oncontextmenu。为了满足浏览器的需求,您必须捕获这两个事件 ——或者找到一个可以为您完成此操作的插件。
请注意,即使解决了这个问题,您仍然不能保证获得右键单击事件或能够禁用标准上下文菜单。由于许多网页滥用了该功能,因此它在许多浏览器中被禁用,有时默认情况下被禁用(例如在 Opera 中)。如果您的应用程序提供右键单击操作,请始终确保有其他方法可以显示它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)