是否有可能获得在 Firefox 浏览器中打开的标签数量?

is it possible to get amount of tabs opened in Firefox browser?

我想遍历打开的选项卡并执行特定任务。 有没有办法获取打开的标签页数量?

如果您需要js脚本,希望以下代码对您有所帮助:

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

这是 Firefox currently uses 计算打开的 windows 和标签页的方式,用于遥测:

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") 的结果,以捕获所有不同打开的数字 windows。

根据@Shugar 的建议,根据您要使用脚本的位置,您可能需要使用 var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator) 而不是 Services.wm