在浏览器选项卡中显示扩展页面

时间:2011-01-27 14:47:46

标签: firefox-addon xul

我正在尝试编写具有一些高级控件的扩展(远远超过从列表中选择或检查/取消启动)。

我希望创建单独的页面来执行所有必需的操作,理想情况下它将是单独的选项卡。

问题是:

是否可以创建XUL窗口并将其插入浏览器选项卡?

现在我只有一个想法 - 将html页面存储到/ content文件夹中,然后使用它们。但我不喜欢那个用户会看到一些奇怪的网址://blalbla/content/control.html等。

1 个答案:

答案 0 :(得分:1)

也适用于XUL页面。但是,如果您要隐藏用户的chrome:网址,您可以创建一个将about:myext重定向到chrome:网址的组件。部分摘录如下:

myAbout.prototype = {
  QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIAboutModule]),

  getURIFlags: function(aURI) {
    return Components.interfaces.nsIAboutModule.ALLOW_SCRIPT;
  },

  newChannel: function(aURI) {
    var channel = ioSvc.newChannel("chrome://myext/content/myext.xul", null, null);
    channel.originalURI = aURI;
    return channel;
  }
};

然后,您必须使用合同ID @mozilla.org/network/protocol/about;1?what=myext注册您的组件,这会将about:myext重定向到您的XUL页面。