2014-02-11 6 views
2

Как открыть окно браузера (например, Firefox, Chrome, IE и т. Д.) Из приложения XUL?Открыть окно браузера из приложения XUL

Я пробовал очевидное window.open(url, "_blank"), но единственный эффект, который это имеет, - закрыть текущее окно XUL (!). Длинный трал Google тоже ничего хорошего не принес.

Для того, чтобы все было ясно, я хочу открыть URL-адрес в браузере по умолчанию пользователя. Я не хочу открывать URL-адрес в моем приложении XUL.

ответ

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). Вы вообще знаете об этом? –