我正在开发一个旧的基于XUL的插件,发现有一个正在使用的about.xul文件。如果右键单击附加组件并从上下文菜单中选择About,则可以从about:addons页面使用此文件。好的。add-on有一个图标,它有自己的上下文菜单,也有一个关于选项,其中about.xul可以通过菜单项->oncommand->window.openDialog()访问。
<menuitem label="About" oncommand="window.openDialog( 'chrome://{GUID}/content/about.xul', /* other parameters */);"/>再说一次,这很公平,我可以原封不动地重用相同的XUL文件。但是,用户可能看不到这两个选项。该附加组件有一个options.xul文件,带有一些选项卡框->选项卡面板。我认为第三次重用about.xul文件会很棒,只需在这里添加一个“关于”面板即可。
然后我意识到,这可能并不像我想的那么简单。
发布于 2016-05-15 00:07:05
经过一些研究、试验和错误,我添加了第三个<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,以便在从选项面板调用About页面时,样式与选项面板匹配,而不是与默认样式匹配。
现在剩下的就是有效地重新创建未定义aboutURL时显示的默认"About“对话框页面。这是一个编写基本XUL代码并根据需要动态应用CSS的练习。所有这一切都是通过学习将XUL注入到XUL中而实现的--从3个调用上下文中重用的单个页面。这进一步为动态生成几乎整个页面做好了准备,这为我迁移到SDK和更远的地方做好了准备。
https://stackoverflow.com/questions/37228788
复制相似问题