【发布时间】:2014-03-09 05:02:49
【问题描述】:
如何从 XUL 应用程序打开浏览器(即 Firefox、Chrome、IE 等)窗口?
我已经尝试了明显的window.open(url, "_blank"),但唯一的效果是关闭当前的 XUL 窗口(!)。对 Google 的长期搜索也没有产生任何成果。
为了清楚起见,我想要的是在用户的默认浏览器中打开一个 URL。我不想在我的 XUL 应用程序中打开 URL。
【问题讨论】:
如何从 XUL 应用程序打开浏览器(即 Firefox、Chrome、IE 等)窗口?
我已经尝试了明显的window.open(url, "_blank"),但唯一的效果是关闭当前的 XUL 窗口(!)。对 Google 的长期搜索也没有产生任何成果。
为了清楚起见,我想要的是在用户的默认浏览器中打开一个 URL。我不想在我的 XUL 应用程序中打开 URL。
【问题讨论】:
不确定这是否对您有帮助,但我用它来打开一个新标签。
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,我就很高兴:-)
【讨论】:
这就是我的工作:
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);
}
【讨论】: