问题描述
|
我喜欢通过扩展在chrome://browser/content/browser.xul中定义为基本元素(未覆盖)的基本Firefox窗口来创建一个窗口。
我的问题是关于在其他扩展程序对其进行任何修改之前从基本窗口定义进行分支/派生,而不是如何将叠加或修改应用于用户所看到的主要FF窗口。
你有什么想法吗?
解决方法
您的问题仍然是关于叠加层。您的叠加层应如下所示:
<overlay xmlns=\"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul\">
<window id=\"main-window\">
<commandset id=\"my-commands\">
...
</commandset>
</window>
</overlay>
本示例将在浏览器窗口的根目录中添加一个“ 1”元素(恰好是ID为“ 3”的“ 2”元素)。
编辑:似乎问题不在于在顶层添加元素,而在于制作现有XUL文档的分支。您可以通过在chrome.manifest中添加override
指令来创建别名:
override chrome://myextension/content/browser.xul chrome://browser/content/browser.xul
现在,您可以将覆盖层应用于别名ony:
overlay chrome://myextension/content/browser.xul chrome://myextension/content/browserOverlay.xul
覆盖层适用于网址,因此可以做到这一点。现在,您可以在新窗口中打开chrome://myextension/content/browser.xul
,它应该是浏览器窗口,但已应用了叠加层。请注意,这种方法有局限性,例如覆盖浏览器窗口的扩展名不会对您的窗口产生任何影响(它们的覆盖层仅适用于原始浏览器窗口URL)。