Firefox addon 如何在引导加载项中覆盖来自另一扩展名的XUL文件(或以其他方式修改XUL文件的DOM)?
我想将一些DOM元素添加到另一个扩展名的XUL文件中 该扩展允许通过单击添加到Firefox的工具栏按钮来“打开”。单击此按钮将打开一个新选项卡,其中包含扩展名中XUL文件的chrome地址 我已经动态创建了一些DOM元素,并将它们添加到Firefox窗口(例如前面提到的工具栏)上的元素中,方法是在加载我的加载项时添加它们,以及在加载加载项后使用窗口“加载”事件监听器打开窗口(使用Firefox addon 如何在引导加载项中覆盖来自另一扩展名的XUL文件(或以其他方式修改XUL文件的DOM)?,firefox-addon,xul,Firefox Addon,Xul,我想将一些DOM元素添加到另一个扩展名的XUL文件中 该扩展允许通过单击添加到Firefox的工具栏按钮来“打开”。单击此按钮将打开一个新选项卡,其中包含扩展名中XUL文件的chrome地址 我已经动态创建了一些DOM元素,并将它们添加到Firefox窗口(例如前面提到的工具栏)上的元素中,方法是在加载我的加载项时添加它们,以及在加载加载项后使用窗口“加载”事件监听器打开窗口(使用document.createElement()和element.appendChild)()),但我不确定向这个X
document.createElement()
和element.appendChild)()
),但我不确定向这个XUL文件中添加动态元素的最佳方法,该文件可以在同一窗口中多次打开和关闭
是否有任何方法可以在每个会话中覆盖XUL文件一次(我猜没有)?否则,我是否需要设置某种页面加载侦听器,在每次加载页面时触发,然后检查地址是否与XUL文件的地址匹配,如果匹配,是否进行覆盖?是否可以侦听特定地址?我最后向
gBrowser
添加了一个加载
侦听器来侦听页面lLoads.listener检查chrome XUL文件地址的event.originalTarget.location
,并在匹配项上添加DOM元素。启用我的加载项后,我使用gBrowser.browsers.length
和gBrowser.getBrowserAtIndex()
循环浏览窗口中所有打开的选项卡,检查XUL是否已打开
为了清理,我将添加到XUL文件中的每个DOM元素的引用存储在我添加到选项卡内容文档中的AddedByMaddon
数组属性中。当我的加载项被禁用时,我会再次在打开的选项卡中循环查找XUL文件,然后删除AddedByMaddon
属性中的所有内容,然后删除addedByMaddon
属性