我有一个Chrome扩展程序,用于侦听页面上的更新.onUpdated方法在页面上进行任何更改后调用侦听器.如果添加或删除DOM节点>,则调用侦听器.更新:似乎在加载请求后调用它.
我开始将此扩展程序移植到Firefox,到目前为止我找不到类似的功能.我想我可能需要深入研究XPCOM.
有人能指出我正确的方向吗?Firefox提供类似的东西吗?
谢谢!
如果您已经有Chrome扩展程序,那么当您尝试将其移植到Firefox附加组件时,一定要查看Addon SDK(这是编写Firefox附加组件的"新"方式,而不是编写XUL/XPCOM).此SDK提供了您在其他扩展平台中找到的大多数"标准扩展功能".
我对你的问题的表达方式感到有些困惑.你的头衔清晰明了:你正在寻找相当于chrome.tabs.onUpdated
.但是,在您的问题的正文中,您暗示此事件以某种方式用于检测何时添加/删除DOM节点.这是错误的.
chrome.tabs.onUpdated
Add-on SDK中没有一个等价物:
Chrome的"状态"变化:
"loading" - 制表符"打开"事件.
"完成" - 选项卡的"就绪"事件(如果要跟踪特定选项卡,请参阅实例的"就绪"事件Tab
).
Chrome的"网址"更改:
标签''打开'事件.
Chrome的"pin"状态改变:没有等价物
Chrome的"favicon"变化:没有等价物
这些事件只能在附加组件的main.js中使用(相当于Chrome的背景页面).如果要将消息发送到内容脚本,请参阅本指南.
如果您对任何标签更新事件(如上所述)不感兴趣,并且只对DOM节点更改感兴趣,只需坚持使用内容脚本,并在Chrome扩展程序和Firefox附加组件中使用几乎相同的代码.Chrome的内容脚本在清单文件中声明,而Firefox的内容脚本在main.js中声明.
Chrome和Firefox都支持Mutation Observers,可用于有效地获取DOM节点更改的通知.