如何从 XULRunner 中的 XUL 应用程序启动网页?

发布于 2024-11-10 16:31:49 字数 468 浏览 3 评论 0原文

以下按钮处理程序的 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');
}

这不会在使用 XULRunner --install-app ./foo.xpi 安装到 Program Files 的 XUL 应用程序中执行任何操作。

有什么方法可以让我的 XUL 应用程序启动用户的默认浏览器以在单击按钮时显示网页?

What is the XULRunner equivalent of the following button handler?

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');
}

This does not do anything in my XUL app that's installed to Program Files using XULRunner --install-app ./foo.xpi.

Is there any way for my XUL app to launch the user's default browser to display a web page on a button click?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不及他 2024-11-17 16:31:49

目前有效:

// 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);

有人有更标准的方法吗?

This works for now:

// 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);

Anybody got a more standard way?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文