#javascript #xul #xpcom #xulrunner
#javascript #xul #xpcom #xulrunner
Вопрос:
Каков эквивалент следующего обработчика кнопок в XULRunner?
function launch_page() {
var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow('navigator:browser');
win.openUILinkIn('http://www.google.com', 'window');
}
Это ничего не делает в моем приложении XUL, которое установлено в Program Files с помощью XULRunner —install-app ./foo.xpi.
Есть ли какой-либо способ для моего приложения XUL запустить браузер пользователя по умолчанию для отображения веб-страницы при нажатии кнопки?
Ответ №1:
Это пока работает:
// first construct an nsIURI object using the ioservice
var ioservice = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var uriToOpen = ioservice.newURI("http://www.google.com/", null, null);
var extps = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"]
.getService(Components.interfaces.nsIExternalProtocolService);
// now, open it!
extps.loadURI(uriToOpen, null);
У кого-нибудь есть более стандартный способ?
Комментарии:
1. Я бы сказал, что это правильный код для приложения XUL без браузера. Все становится сложнее, когда вы пишете расширение, которое хотите иметь возможность устанавливать как в браузерных, так и в не-браузерных приложениях XUL.