右键问题的进一步阐述参考文章同上。根据Taras Tielkes的回忆,DOM 2 建议(而不是暗示)所有的按键都
是accesalbe的,也就是右键click应该触发onclick。他给出的建议是:
保持onclick仅仅服务于鼠标左键,使onmousedown和onmouseup适用于
所有按键,这样如果需要,仍旧可以实现对右键click的处理,同时建
议DOM标准也做出修正。然而Dylan Schiemann提出了有利的反驳意见。他指出,考虑到Mac只有
一个按键,而linux支持3个按键,则DOM规范的做法就是nice、clean、
generic和cross-platform的解决方案。在onclick事件的event.button
为2时使用event.preventDefault() 理论上取消了contextmenu。他同时
认为理想的做法是让用户有权利保留上下文菜单,但也应给作者权利让
他们知道用户的选择:接受作者的上下文菜单,仅接受mozilla的上下文
菜单,或者将两者结合,尤其是第三种情况,应该有方法让作者了解。
我认为他的观点的启发性在于,我们需要给用户选择来避免脚本的滥用
诸如弹出许多窗口、关闭上下文菜单、强行保持焦点等,但同时也应给
作者权利了解他们的网页正在被如何浏览,用户许可那些选项。         我的一个想法是固然这许多设想需要靠浏览器和标准本身的发展来解决,
但这个思路值得借鉴,比如在我们用自己的contextmenu替换浏览器的
时候,是否应该在menu的最后增加一个“浏览器菜单”的选项,使用户
在必要时候也能使用所需功能呢?          继续上面的问题主要还是两种意见的对立,一种认为远程在任何情况下都不能对右键
的使用做出响应或干扰。另一种意见认为由于类似应用程序的web开
发需要,应该赋予开发者对右键的控制。有开发者指出0.9.2的不一致情况:连接的onclick事件响应所有的按
键,而button仅仅响应左键。讨论同时还提到Accesskey的问题,以及类似的中键和Ctrl-左键的问
题。对DOM规范,有一种新的意见认为,DOM只是要求必须有方法获得哪个
按键,并不意味着必须把没种按键事件都发送给脚本处理。否则必然
导致“兼容性”问题,行为既不符合开发者的期望也不符合用户的期
望。                最终问题的解决如果你有耐心和兴趣看到这里,那么相信也不必让我辛苦的继续翻译了。--- Additional Comment #50 From [email protected] 2001-09-26 13:11 ---Attaching patch. This patch disables right and middle mouse
clicks on all content objects  (with the exception of text
fields due to a compatibility bug with existing code).  It
does not disable right and middle mouse clicks on documents,
windows, and in the browser chrome. These events are already
widely used within the browser to provide internal
functionality.  In addition, the firing of middle and right
clicks is correct per the DOM 2 Event spec and required for
the coding of complex applications.  No equivalent event
exists.  It is hoped that the current patch will fix all the
bug cases in question.  It has been tested and does fix the
simple and common cases attached to this bug.
我想你已经猜到了,这是一个同时符合兼容性和符合DOM标准的方案,     
令人惊讶的是,这个方案同时也很符合逻辑,又不失简洁(至少比在
IE里用onmousedown和onmouseup重构onclick要方便许多)。看来至少我没有白看那么多鸟语。