是否有可能获得在 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
。
我想遍历打开的选项卡并执行特定任务。 有没有办法获取打开的标签页数量?
如果您需要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
。