在里面源代码对于 Firefox Ctrl+Tab行为,有一个 6 个选项卡的硬编码限制:
/**
* Ctrl-Tab panel
*/
var ctrlTab = {
maxTabPreviews: 6,
//...
for (let i = 0; i < this.maxTabPreviews; i++) {
previewsContainer.appendChild(this.makePreview(false));
}
//...
这不是很多。除了从源代码进行完整构建外,还有其他方法可以改变此行为吗?
例如,我并不是在寻找一种可以提供替代选项卡列表的解决方法或插件,我真正想找到的是一种本质上与放置相同的效果maxTabPreviews = 10
但又不必编译自定义版本的 Firefox 的方法。例如,userchrom.css 可以覆盖某些样式元素,但随后又允许覆盖此代码片段。
答案1
警告据我所知,下面介绍的解决方案对我来说没有任何缺陷,但 YMMV,所以请自行尝试风险。
感谢 harrymc 为我指点迷津。你说 Firefox 中没有这个字符串,这让我想到,源代码中的所有 .js 文件都不可能都在 firefox.exe 中,因为它太小了。所以我去应用程序目录中寻找它们的位置,发现它们被压缩在一个单独的文件中omni.ja 文件. 使用解压文件
unzip omni.ja -d omni
给出一个包含所有 JavaScript/HTML/CSS 等的目录结构,其中包括omni/chrome/browser/content/browser/browser-ctrlTab.js
。耶!所以我编辑了文件以使用 8 而不是 6,然后按照说明再次压缩使用
cd omni
zip -qr9XD omni.ja *
9
但是,生成的文件比原始文件小 2.5 倍左右,因此我认为 Firefox现在不再使用此压缩级别0
。确实
zip -qr0XD omni.ja *
生成的文件大小几乎与原始文件大小相同。使用 7zip 测试原始 omni.ja 时,确实显示“警告:有效载荷数据结束后还有一些数据”,因此这可能是罪魁祸首。
无论如何,用新的 omni.ja 替换原来的,使用firefox -p
新的配置文件启动以确保安全,我很高兴看到现在确实有 8 个选项卡。再次使用 12 个选项卡重复相同的操作,截图:
缺点很明显:每次更新后可能需要重复此过程。但除非附加组件可以访问所有内部组件(这是下一步要研究的事情),否则这可能是唯一的方法。改进方法是呈现多行而不是一行。
答案2
这是三年前在错误报告中提出的: 使用 Ctrl+Tab 时需要六个以上的缩略图,并且最近被降为低优先级。
您需要尝试使用插件来解决问题。下面是可用的插件列表。我还没有尝试过,所以无法判断哪一个可以帮助解决问题: