gpt4 book ai didi

javascript - Opera 默认捕获事件吗?正确的行为是什么?

转载 作者:行者123 更新时间:2023-11-28 10:12:18 26 4
gpt4 key购买 nike

我有一些事件代码在 Opera 中失败,我已将其精简为 this small testcase

基本上,问题在于,如果未设置 addEventListener 的第三个参数,则事件处理程序不会在 Opera 中运行。当单击“useCapture not set”按钮时,测试用例中的值在 Firefox 和 Chrome 中都会递增,但在 Opera 中则不会。

这篇(旧)文章表明 Opera 与 webkit 和 gecko 浏览器不同: http://my.opera.com/hallvors/blog/2006/10/12/2006-10-12-event-capture-explained 。但我不知道该怎么做。 MDN 表示 useCapture 应默认为 false

是 Opera 中默认的 true,该参数是否根本不是可选的,或者我缺少什么?什么是正确的行为?

最佳答案

如有疑问,请参阅规范。最初且仍然有效的规范是 W3C 的 DOM Level 2 Events 。看着ECMASCript binding page ,似乎 useCapture 参数是必需的,因为没有提到它是可选的。

DOM 3 级事件 explicitly mentions useCapture as being optional ,尽管我认为该规范草案尚未在浏览器中得到广泛采用。

relevant MDN page对此也有注释:

Note: useCapture became optional only in more recent versions of the major browsers; for example, it was not optional prior to Firefox 6. You should provide that parameter for broadest compatibility.

底线:始终传递所有三个参数是最安全的,Opera 完全有权利坚持这样做。

关于javascript - Opera 默认捕获事件吗?正确的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7275708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com