2014-02-11 91 views
2

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

我试过了明显的window.open(url, "_blank"),但是唯一的影响是关闭当前的XUL窗口(!)。 Google长时间的拖网也没有产生任何成果。

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

回答

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

这是我做的:

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); 
} 
+0

+1 - 这确实的企业,却耿耿于怀,为用户选择合适的该协议的应用程序(例如HTTP或HTPPS)。你知道吗? –

相关问题