2010-11-28 66 views
1

我无法在Mozilla文档的任何位置找到它。假设我编写了一个在keypress上使用addEventListener的扩展。如果一个网页包含一个调用keypress(或keydown)上的addEventListener的JS代码,那么执行优先级是什么?我的分机是否可以保证首先收到该事件?Firefox扩展执行优先级

回答

1

事件首先经过“捕获”阶段,然后是“冒泡”阶段。如果您使用捕获阶段(通过将true作为addEventListener的最后一个参数),那么您的侦听器将在页面上的侦听器之前被调用,如果页面上的侦听器使用冒泡阶段。我猜如果你不知道它在页面上的工作方式,那么你可以将它附加到页面不可接触的东西上(比如browser对象,或者甚至是gBrowser),然后你可以确定你的是第一个。见http://www.w3.org/TR/DOM-Level-3-Events/#event-flow