0

我想从 Thunderbird 扩展以私有模式打开一个 URL。现在,以下代码在“标准”非私有模式下工作:

try {
  var eps = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"].
  getService(Components.interfaces.nsIExternalProtocolService);
  var ios = Components.classes["@mozilla.org/network/io-service;1"].
  getService(Components.interfaces.nsIIOService);
  eps.loadURI(ios.newURI("http://www.example.com", null, null));
} catch (err) {}

知道如何在私有模式下达到相同的结果吗?我有兴趣让它与启动 Chrome 作为默认浏览器一起工作。(再一次,Chrome 使用上面的代码正确启动)。

4

1 回答 1

1

您不能真正在私人窗口 AFAIK 中使用新 url 启动 Firefox。-private-window <url>将打开一个新的私人窗口,但仍将新选项卡放在常规选项卡中。

Chrome 可以使用 启动chrome --incognito <url>,但是您需要自己启动它nsIProcess,因此首先必须弄清楚 chrome 二进制文件在哪里。

如果您可以保证默认处理程序是 Chrome,那么您可以使用nsIExternalProtocolService.getProtocolHandlerInfo()preferredApplicationHandlerQueryInterfacethatnsILocalHandlerApp来查找.executable. 否则,您将不得不自己处理操作系统和/或已知路径。

于 2013-09-25T23:04:37.133 回答