Можно ли получить количество вкладок, открытых в браузере Firefox? - PullRequest
0 голосов
/ 02 марта 2019

Я хочу перебирать открытые вкладки и выполнять конкретные задачи.Есть ли способ узнать количество открытых вкладок?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Это способ, которым Firefox в настоящее время использует для подсчета открытых окон и вкладок, для телеметрии:

function getOpenTabsAndWinsCounts() {
  let tabCount = 0;
  let winCount = 0;

  for (let win of Services.wm.getEnumerator("navigator:browser")) {
    winCount++;
    tabCount += win.gBrowser.tabs.length;
  }

  return { tabCount, winCount };
}

Обратите внимание, как он повторяет результаты Services.wm.getEnumerator("navigator:browser"), чтобызахватывать номера всех разных открытых окон.

В зависимости от того, где вы хотите использовать скрипт, вам, возможно, придется использовать var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator) вместо Services.wm, как предлагает @ Shugar.

0 голосов
/ 02 марта 2019

Если вам нужен js-скрипт, надеюсь, вам пригодится следующий код:

var wM = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var numberOfTabs = wM.getMostRecentWindow("navigator:browser").gBrowser.browsers.length;
...