1

私は Firefox アドオンを作成しており、高レベルの Firefox アドオン SDK API を使用しています。

私のアドオンは新しいウィンドウを開き、そのウィンドウでいくつかのタブを開きます。

この新しいウィンドウをバックグラウンドで開くにはどうすればよいですか? 開いたときに、ユーザーがアクティブなウィンドウに集中するのを邪魔したくありません。

タブを開くとき、これに使用できる inBackground オプションがあります。

Windowsモジュールのドキュメントを高低で検索しましたが、新しいウィンドウを作成するときに同様のオプションが見つかりません!

この新しいウィンドウをバックグラウンドで開くにはどうすればよいですか?

Mozilla がそうするのを禁じている場合、新しいウィンドウが開いた直後にバックグラウンドにすばやくプッシュして、混乱を最小限に抑える方法はありますか?

4

1 に答える 1

2

許可されていません。まったく問題ありません。alwaysLowered私が思う機能オプションでそれをしてください。

ここにある機能の完全なリスト: https://developer.mozilla.org/en-US/docs/Web/API/window.open#Position_and_size_features

var sa = Cc["@mozilla.org/supports-array;1"].createInstance(Ci.nsISupportsArray);
var wuri = Cc["@mozilla.org/supports-string;1"].createInstance(Ci.nsISupportsString);
wuri.data = 'about:blank';
sa.AppendElement(wuri);
let features = "chrome,dialog=no,alwaysLowered";
var wantTabs = false;
if (wantTabs) {
  features += ',all';
}
/*var sDOMWin = aTab.ownerGlobal; //source DOMWindow*/
if (PrivateBrowsingUtils.permanentPrivateBrowsing/* || PrivateBrowsingUtils.isWindowPrivate(sDOMWin)*/) {
   features += ",private";
} else {
   features += ",non-private";
}
var XULWindow = Services.ww.openWindow(null, 'chrome://browser/content/browser.xul', null, features, sa);

このコードを最後にタグ付けして、XULWindowロード後に何かを行うことができます。

XULWindow.addEventListener('load', function() {
  //can lower or raise the window z-index here
  var DOMWindow = XULWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowInternal || Ci.nsIDOMWindow);
  DOMWindow.gBrowser.selectedTab.linkedBrowser.webNavigation.stop(Ci.nsIWebNavigation.STOP_ALL);
}, false);
于 2014-11-29T18:42:42.390 に答える