从XUL应用程序打开浏览器窗口

时间:2014-02-11 12:05:27

标签: url browser xul xulrunner

如何从XUL应用程序中打开浏览器(即Firefox,Chrome,IE等)窗口?

我尝试了明显的window.open(url, "_blank"),但唯一的效果就是关闭当前的XUL窗口(!)。长期拖延谷歌并没有产生任何丰硕成果。

为了清楚说明,我想要的是在用户的默认浏览器中打开一个URL。我不想在我的XUL应用程序中打开URL。

2 个答案:

答案 0 :(得分:1)

不确定这是否对您有所帮助,但我使用它来打开新标签页。

var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
    .getService(Components.interfaces.nsIWindowMediator)
    .getMostRecentWindow('navigator:browser');
win.gBrowser.selectedTab = win.gBrowser.addTab(myUrl);

您需要将myURL设置为您要打开的页面。

更多信息here

另请注意,这肯定不会打开IE或Chrome。只要不打开IE,我就很满意: - )

答案 1 :(得分:1)

这就是我的所作所为:

function OpenInDefaultBrowser(uri)
{
    if(typeof uri == 'string')
    {
        var ioservice = Components.classes["@mozilla.org/network/io-service;1"]
            .getService(Components.interfaces.nsIIOService);
        uri = ioservice.newURI(uri, null, null);
    }

    // Open URL in user's default browser.
    var extps = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"]
        .getService(Components.interfaces.nsIExternalProtocolService);
    extps.loadURI(uri, null);
}