24

我想自动计算在 Firefox 中打开的选项卡的数量,以便随着时间的推移进行跟踪。

因此,我可以获得一个在状态栏或浏览器其他位置显示当前数字的附加组件是不够的。

我查看了 firefox 为每个配置文件保存的 .sqlite 表的内容,但我无法破译是否存在当前打开的选项卡表。我还查看了历史表中是否有一个列来说明页面当前是否打开。

这些信息在数据库中是否可用?

如果是这样,在哪里存储了可用于计算当前打开的选项卡数量的信息?

如果没有,诸如 Tab Counter 之类的附加组件如何找出这个数字?最后一个问题我会问开发人员,如果它不是足够普遍的知识,我可以在这里得到答案,而不是问那些可能希望你使用他或她的附加组件的人。

4

5 回答 5

64

about:telemetry在 Firefox 中打开链接,然后单击scalars侧边栏菜单中的选项卡。或者,打开about:telemetry#scalars-tab会将您直接带到scalars选项卡。

browser.engagement.max_concurrent_tab_count键将显示会话中活动的选项卡数量,但在关闭选项卡时不会更新。相反,如果要更新此值,则需要重新启动浏览器。

browser.engagement.tab_open_event_count键显示在给定时间当前打开的选项卡数量并动态更新。

于 2017-07-26T21:09:25.887 回答
13

在线的

在运行的 Firefox 会话中,使用 Mozilla Add-on API 很容易提取数据。我编写了一个简单的Tab Count Logger扩展来执行此操作,并将计数保存到 SQLite 数据库。

代码的相关部分是:

const tabs = require("sdk/tabs");
const windows = require("sdk/windows").browserWindows;

console.log("Windows: " + windows.length + "; tabs: " + tabs.length);

离线

打开的选项卡存储在sessionstore.js配置文件目录中,而不是 SQLite 中。这个文件是 JSON。一个统计标签的脚本:

#!/usr/bin/env python3
# Count open tabs from a firefox profile
# Working directory is the root of a Firefox profile.
import json
j = json.loads(open("sessionstore.js", 'rb').read().decode('utf-8'))
def info_for_tab(tab):
    try:
        return (tab['entries'][0]['url'], tab['entries'][0]['title'])
    except IndexError:
        return None
    except KeyError:
        return None
def tabs_from_windows(window):
    return list(map(info_for_tab, window['tabs']))
all_tabs = list(map(tabs_from_windows, j['windows']))
print('Statistics: {wins} windows, {tabs} total tabs'.format(wins=len(all_tabs), tabs=sum(map(len, all_tabs))))

将其保存到 后~/bin/firefox_count_tabs,您可以获得所有配置文件的信息,如下所示:

for i in ~/.mozilla/firefox/*.*; do test -d $i && (echo "== $i =="; cd $i; ~/bin/firefox_count_tabs ); done
于 2013-05-27T06:41:04.523 回答
4

计数将显示在退出确认对话框中 - 如果您没有禁用它️</p>

于 2019-12-04T02:09:25.790 回答
2

@Xidus:历史记录和书签存储在places.sqlite 中。您无法确定此处的选项卡和窗口信息。选项卡和窗口信息存储在 sessionstore.js 文件中。您可以参考以下链接:

http://kb.mozillazine.org/sessionstore.js http://forums.mozillazine.org/viewtopic.php?f=38&t=622036&start=60&p=12098147#p12098147

于 2013-04-11T20:29:11.610 回答
1

您可以计算浏览器控制台(不是 Web 控制台)中的选项卡

gBrowser.tabs.length

默认情况下禁用浏览器控制台。要启用它,您应该在 Web 开发人员工具设置中勾选“启用浏览器 chrome 和附加调试工具箱”选项。之后在更多工具菜单中查找浏览器控制台。

在此处输入图像描述

于 2021-10-23T10:36:03.397 回答