【问题标题】:Open a browser window from an XUL application从 XUL 应用程序打开浏览器窗口
【发布时间】:2014-03-09 05:02:49
【问题描述】:

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

我已经尝试了明显的window.open(url, "_blank"),但唯一的效果是关闭当前的 XUL 窗口(!)。对 Google 的长期搜索也没有产生任何成果。

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

【问题讨论】:

    标签: url browser xul xulrunner


    【解决方案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,我就很高兴:-)

    【讨论】:

      【解决方案2】:

      这就是我的工作:

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

      【讨论】:

      • +1 - 这可以做生意,但它会让用户为协议选择合适的应用程序(例如 HTTP 或 HTTPPS)。你知道吗?
      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 2013-10-10
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多