我使用 Firefox 时未选中“允许网站选择自己的字体”选项,因此所有内容都以我喜欢的字体显示。我喜欢这种方式。唯一的问题是,一些令人讨厌的网站(例如 Github 和 Tumblr)决定使用自定义字体,而不是显示文本,而是从字形创建图标。我想要的是一种在 Firefox 中将多种字体设置为“允许”的方法:如果某个网站尝试使用其中一种允许的字体,那就没问题,否则它会使用我的字体。
类似问题描述于Mozilla 支持问题,Firefox 错误报告和这里还有一个问题。我找不到令人满意的解决方案。
据我所知,基于 CSS 的解决方案(例如自定义用户样式表)无法工作,因为我无法使用 CSS 根据给定网站尝试显示的字体进行选择。也就是说,理论上可以编写“第二阶段”CSS 规则,仅选择 CSSfont-family
属性设置为特定字体的元素,但实际上(据我所知)CSS 不允许这样做。这似乎也意味着 Stylish 扩展不是一个解决方案。
作为测试,我还尝试下载 Github 的 octicon 字体并将其安装在我的系统上,希望这能让 Firefox 自动替换这些字形(就像我查看其他字母表的文本时一样)。但它不起作用。
将某事物视为“解决方案”必须满足以下标准:
- 它必须是白名单,而不是黑名单——也就是说,它必须说“这些字体是允许”而不是“这些字体是不是允许”——并且非白名单字体的后备行为必须是使用我指定的字体。我对需要我手动“启用”某些网站仅使用我的字体行为的解决方案不感兴趣。默认行为必须是使用我的字体。
- 它必须是字体特定的,而不仅仅是网站特定的。例如,我不想允许 Github 使用自己的字体。我想允许 Github 使用仅有的它在使用它的地方使用愚蠢的八度字体,而网站其余的用户界面则使用我的字体。我同意一个允许我通过字体进行限制的解决方案和不过,网站。基本上,我可以接受“让任何人使用字体 X”或“仅让网站 Y 使用字体 X”的解决方案,但不能接受只允许我说“让网站 Y 使用其想要的任何字体”的解决方案。
- 它一定不能让我为每个网站编写任何类型的自定义样式表或脚本。这意味着“你可以编写一个greasemonkey脚本来做这件事”不是一个解决方案,除非有一个现有的greasemonkey脚本可以一劳永逸地完成这件事。我可以安装并设置一些东西,显然我必须自己管理白名单,但如果我必须为每个网站调整工具(例如,通过修改它来“了解”该网站的特定CSS),这不是一个解决方案。
有没有什么解决办法?我很好奇我是否是唯一一个真正使用“不允许网站使用自己的字体”选项的人,如果不是,其他人如何处理这个烦恼。
答案1
根据您的指示,这不是答案。只是一种解决方法。我没有足够的声望来发表评论。我使用自动热键(他们的网站当然使用这些该死的字形!)脚本来翻转该复选框。它使来回更改只需一个键盘快捷键选项(control + I):
#IfWinActive Firefox ahk_Group Firefox
^I:: ; fix fonts
SendInput {AltDown}{AltUp}t
sleep 100
SendInput o
WinWaitActive Options ahk_class MozillaDialogClass ahk_exe firefox.exe,,5
If ErrorLevel
return
ClickAndReturn(158,49)
SendInput !a
WinWaitActive Fonts ahk_class MozillaDialogClass ahk_exe firefox.exe,,5
If ErrorLevel
return
SendInput !a{enter}
WinWaitActive Options ahk_class MozillaDialogClass ahk_exe firefox.exe,,5
If ErrorLevel
return
SendInput +{tab}{enter}
return