0
我写一个Firefox扩展,这是做两件事情(对这个问题的上下文中)访问的DOM API:在Firefox扩展
- 注册为某些DOM事件,即
DOMContentLoaded
和DOMFrameContentLoaded
。 - 在回调事件时,访问DOM API并执行某些操作。
扩展名获取第一个事件(DOMContentLoaded
或DOMFrameContentLoaded
),并且回调函数调用一些DOM API。我在观察,在调用从DOM API调用返回到我的扩展之前,另一个事件触发和我的回调函数被调用(我还没有能够缩小哪个特定的DOM API,因为我的扩展调用了一堆DOM蜜蜂)。
这甚至可能吗?顺便说一句,我在Windows上的Firefox 12上。我正在打印threadManager.isMainThread
,并且在这两种情况下,都会在主线程上调用事件回调。
任何指针将不胜感激。
感谢弗拉基米尔答案。我没有直接做任何你提到的事情。在我的扩展中,我正在注册DOMContentLoaded和DOMFrameContentLoaded。在我的测试案例中,我看到DOMContentLoaded被解雇,并且在我的处理程序中,我调用了一些DOM API来读取数据,并在返回之前调用DOMFrameContentloaded。我并不直接导致(至少是直接)导致这些事件在我处理过程中被调用。你知道在返回之前是否有任何DOM API在内部调用processNextEvent()吗?如果是的话,无论如何要压制这种行为? –
不,AFAIK内部调用'processNextEvent()'的唯一东西是模态对话框和同步'XMLHttpRequest'。 –
再次感谢。顺便说一句,我正在使用的测试页有内嵌的Java小程序,可以作为Firefox内部processNextEvent()的代码路径吗?我可以在Firefox代码库中验证这一点吗? –