Chrome 在浏览器中禁用系统中安装的字体

at0kjp5o  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(151)

例如,我在Windows中安装了Open Sans字体,并在我的网站中嵌入了Google字体。如果我忘了实现谷歌字体,那么我可以在我的网站上看到字体,因为我有它安装在系统中,但我的访问者没有。如何测试字体,并忽略系统字体?
我试图在Chrome/firefox的配置中找到一些选项或插件来永久禁用浏览器中的系统字体,但我找不到任何东西。我想在Photoshop中使用已安装的字体,但不想在浏览器中使用。
抱歉英语不好。问候

fumotvh3

fumotvh31#

尝试将字体重命名为与系统中的名称不匹配的名称。

@font-face {
   font-family: 'Open-Sans-Private';
}

这样你的系统就不会识别它,你就可以看到你的嵌入策略是否真的有效。
希望能帮上忙!

c0vxltue

c0vxltue2#

可能对您的用例有帮助的部分解决方案...

我的相关用例

首先,我的相关用例:我有一个SVG文件,它以一种名为“HAL Flex Sans”的字体呈现文本。这不是我的操作系统附带的 * 基本系统字体 *,而是 * 用户安装的字体 *:我不得不自己安装。
当我在计算机上的Web浏览器中查看SVG时,SVG中的文本在HAL Flex Sans中正确呈现。
也许我已经在SVG <style>元素中嵌入了字体定义:

@font-face {
  font-family: 'HAL Flex Sans';
  font-style: normal;
  font-weight: 400;
  src: url(data:font/woff2;base64, ... ) format('woff2');
}

但是我怎么知道浏览器使用的是嵌入式字体还是我电脑上安装的字体呢?
或者,也许我可以看到其他人在网络上发布了一个需要HAL Flex Sans的SVG图像,但没有提供或引用字体定义,但他们没有意识到有什么问题;对他们来说看起来没问题,因为他们的电脑上安装了HAL Flex Sans。他们的亲密同事也是如此。
如何在没有安装HAL Flex Sans的计算机上测试SVG的外观,而实际上没有单独的物理计算机来执行该测试?
一种解决方案是创建一个具有Web浏览器的虚拟机(VM),但故意不安装HAL Flex Sans。事实上,我用过这种方法。但还有其他解决方案,需要更少的努力。

方案一:在Firefox中禁用用户安装的字体

在Firefox中(默认字体为Times New Roman):
1.在地址栏中,输入about:config
1.接受风险
1.将首选项layout.css.font-visibility.standard的值从3(也是用户安装的字体)更改为1(仅限基本系统字体)
1.重新加载包含要测试的内容的选项卡
如果要测试的内容中的文本是以默认浏览器字体呈现的(例如,Times New Roman),则不好:这意味着内容正在回落到安装在您的计算机上的字体。
有关详细信息,请参阅问题“如何阻止Firefox中的系统字体检测?”在Mozilla Firefox支持论坛上。

方案二:在Firefox中只允许已安装的白名单字体

我更喜欢解决方案1。此解决方案可能会影响某些浏览器UI文本,例如地址栏内容和选项卡标签。
在Firefox中:
1.在地址栏中,输入about:config
1.接受风险
1.添加字符串值首选项font.system.whitelist
1.将font.system.whitelist的值设置为本地安装的字体的名称,该字体看起来与所讨论的字体非常不同
1.重新加载包含要测试的内容(例如,SVG图像)的选项卡
如果要测试的内容中的文本以白名单字体呈现,那就不好了:这意味着内容正在回落到安装在您的计算机上的字体。

不是解决方案:Chrome“禁用本地字体”功能

Chrome的“禁用本地字体”功能可能听起来很有前途,但它在这里没有用处。
该功能模拟@font-face规则中缺少的local()源。它 * 不会 * 禁止Chrome使用本地安装的字体,该字体通过font-family名称引用。

相关问题