Firefox addon 影响Firefox扩展中页面加载处理程序的顺序

Firefox addon 影响Firefox扩展中页面加载处理程序的顺序,firefox-addon,pageload,Firefox Addon,Pageload,对于一些Firefox扩展来说,尽早获得页面内容进行修改是有意义的,而对于其他扩展来说,则尽可能晚(例如,当其他扩展可以通过修改完成时)。很明显,总会有一些扩展想要成为“第一个”或“最后一个”,但我很难在网上找到涵盖这些内容的材料。对于addEventListener(“load”,…),我只能发现调用事件处理程序的顺序未定义。如果addEventListener没有办法,那么我在Firefox扩展中还有哪些其他选项可以影响内容处理的早/晚?事件侦听器的触发顺序确实没有定义,您不能依赖任何特定的

对于一些Firefox扩展来说,尽早获得页面内容进行修改是有意义的,而对于其他扩展来说,则尽可能晚(例如,当其他扩展可以通过修改完成时)。很明显,总会有一些扩展想要成为“第一个”或“最后一个”,但我很难在网上找到涵盖这些内容的材料。对于addEventListener(“load”,…),我只能发现调用事件处理程序的顺序未定义。如果addEventListener没有办法,那么我在Firefox扩展中还有哪些其他选项可以影响内容处理的早/晚?

事件侦听器的触发顺序确实没有定义,您不能依赖任何特定的顺序。就扩展而言,您最好的选择是以这样一种方式编写代码,即您不关心其他扩展是否已经完成。除此之外,您还可以选择要附加的事件:

  • 在尽可能早的时间点运行,当窗口刚刚创建时-但是窗口的内容还不可用。如果您的代码是由窗口的覆盖层加载的,那么这个选项显然不是您可以使用的,加载覆盖层发生的时间要晚一些
  • DOMContentLoaded
    事件在访问窗口的DOM后发生
  • load
    事件在所有依赖元素加载后发生
  • 如果您想更晚运行,可以在
    load
    事件处理程序中调用
    setTimeout(…,0)
    ,确保在所有
    load
    事件处理程序之后执行超时

事件侦听器的触发顺序确实未定义,您不能依赖任何特定顺序。就扩展而言,您最好的选择是以这样一种方式编写代码,即您不关心其他扩展是否已经完成。除此之外,您还可以选择要附加的事件:

  • 在尽可能早的时间点运行,当窗口刚刚创建时-但是窗口的内容还不可用。如果您的代码是由窗口的覆盖层加载的,那么这个选项显然不是您可以使用的,加载覆盖层发生的时间要晚一些
  • DOMContentLoaded
    事件在访问窗口的DOM后发生
  • load
    事件在所有依赖元素加载后发生
  • 如果您想更晚运行,可以在
    load
    事件处理程序中调用
    setTimeout(…,0)
    ,确保在所有
    load
    事件处理程序之后执行超时