XUL:如何包含和扩展另一个.xul文件?

时间:2011-06-06 19:31:19

标签: firefox-addon xul

我喜欢通过扩展基本 Firefox窗口创建一个窗口,该窗口在chrome://browser/content/browser.xul中定义为顶级元素(不是叠加层)。

我的问题是在通过其他扩展程序对其应用任何修改之前从基本窗口定义分支/分叉,并且关于如何将覆盖或修改应用于用户看作主FF窗口。< / p>

你知道怎么做吗?

1 个答案:

答案 0 :(得分:2)

您的问题仍然是叠加层。你的叠加层应该是这样的:

<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <window id="main-window">
        <commandset id="my-commands">
            ...
        </commandset>
    </window>
</overlay>

此示例将向浏览器窗口的根目录添加<commandset>元素(恰好是ID为<window>的{​​{1}}元素。 < / p>

编辑:似乎问题不是关于在顶层添加元素,而是关于创建现有XUL文档的分支。您可以通过向chrome.manifest添加main-window指令来创建别名:

override

现在,您可以将叠加层应用于别名:

override chrome://myextension/content/browser.xul chrome://browser/content/browser.xul

重叠应用于网址,这使得这成为可能。现在,您可以在新窗口中打开overlay chrome://myextension/content/browser.xul chrome://myextension/content/browserOverlay.xul ,它应该是浏览器窗口,但应用了叠加层。请注意,这种方法有局限性,例如:覆盖浏览器窗口的扩展名对您的窗口没有影响(它们的叠加层仅适用于原始浏览器窗口URL)。