右键问题的进一步阐述参考文章同上。根据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要方便许多)。看来至少我没有白看那么多鸟语。
是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要方便许多)。看来至少我没有白看那么多鸟语。
解决方案 »
- 面向对象JS
- js問題不能去掉事件
- Chrome和FireFox下file控件的路径问题
- 求教如何使用createElement addpendChlid在一个div层下加另一个div层
- /新手/checkbox的checked判断问题
- 如何得到span标签的尺寸?
- windo.location 的页面为什么 chrome 浏览器不执行JS
- var now = new Date(); 这个now 到底是变量还是新的对象?
- arcgis js api 加载 google 切片地图 异常
- 图片分块显示不同颜色
- 能用Javascript实现像飓风搜索通的搜索功能吗?(如谁能解决,将分时给两百分。作为技术高超奖)
- 有关下拉列表框的问题,请帮忙!
我觉得IE的方法最好。其他的都无聊。
哎,csdn的气氛真是不行。看来javascript版是再找不到与我心有戚戚者了。