我正在处理一个旧的基于XUL的插件,发现有一个about.xul
文件正在使用中。如果右键单击该加载项,则从about:addons
页面使用此文件,然后从上下文菜单中选择“关于”。好。附加组件有一个带有自己的上下文菜单的图标,该菜单也有一个about选项,其中about.xul是从menuitem-> oncommand-> window.openDialog()访问的。
<menuitem label="About" oncommand="window.openDialog( 'chrome://{GUID}/content/about.xul', /* other parameters */);"/>
同样,这很公平,我可以重复使用未经修改的相同XUL文件。但是,这两个选项对用户来说可能并不明显。该加载项具有options.xul
文件,其中包含一些tabbox-&gt; tabpanels。我认为第三次重用about.xul文件会很棒,只需添加一个&#34;关于&#34;小组在这里。
然后我意识到,这可能不像我想象的那么简单。
答案 0 :(得分:1)
经过一些研究,试验和错误后,我添加了第3个<tab>
和<tabpanel>
,内部只有<iframe>
。
<tabs>
[other tabs]
<tab label="About"/>
</tabs>
<tabpanels>
[other tabpanels]
<tabpanel>
<iframe src="chrome://{GUID}/content/about.xul" flex="1"/>
</tabpanel>
</tabpanel>
这实际上有效,并且比我最初的想法简单得多。
但是,在我的特定情况下,需要动态修改CSS,以便在“选项”面板中调用“关于”页面时,样式与“选项”面板匹配,而不是默认设置。
现在剩下的就是有效地重新创建没有定义aboutURL时显示的默认“关于”对话框页面。这是编写基本XUL代码并根据需要动态应用CSS的练习。所有这一切都可以通过学习将XUL注入XUL - 从3个调用上下文重用的单个页面实现。这进一步设置了动态生成几乎整个页面的阶段,这为我向SDK及更高版本的迁移做好了准备。