有没有办法通过网络检查机器上安装的字体?

时间:2009-06-03 16:15:56

标签: javascript jquery css fonts

有没有办法测试安装了哪些字体,或者我可以读出所有字体?我想在我们的产品中进行一项调查,看看我可以在项目中使用哪些字体。

8 个答案:

答案 0 :(得分:10)

有一个脚本以不同的字体呈现一堆DIV,然后检查生成的DIV是否具有给定字体的正确尺寸。

http://www.lalit.org/lab/javascript-css-font-detect

答案 1 :(得分:3)

答案 2 :(得分:2)

FontUnstack

中查看jQuery插件question

答案 3 :(得分:1)

这是一个list of the most common fonts on windows and mac machines(每个都有图像比较)。我在选择要在项目中使用的字体时使用它。

答案 4 :(得分:1)

通过浏览器确定客户端计算机上的已安装(和可用)字体没有万无一失的方法。

Flash可能允许你这样做,或者可能是一些疯狂的(但写得很有趣)JavaScript,它假设有给定字体的元素大小 - 但是这个脚本可能容易受到客户端设置差异的影响,无论多少它考虑的案例。

我强烈建议您不要使用您提出的调查/部署方法。您将做出一些不可能的决定 - 例如,可接受的可用百分比是多少?如果它是100%,那么当新用户出现时没有这种字体你会怎么做?如果不是,那么您的用户中有多少比较适合降级体验?

您是否考虑过sIFR或仅考虑具有适当alt属性的图像元素?

如果您有特定的印刷要求,可能值得关注这一点:http://blog.typekit.com/

答案 5 :(得分:1)

您可以使用Flash获取客户端操作系统中安装的字体列表:

var embeddedAndDeviceFonts:Array = Font.enumerateFonts(true);

然后,您可以使用ExternalInterface在Flash和Javascript之间移动此信息。它不需要太多代码。

查看my blog post about it以获取更多信息和a demo implementation

答案 6 :(得分:0)

没有好办法做到这一点。虽然如果你有一个你想知道的字体列表,创建一个总是存在回退的类:

span#knownfont{font-family:Verdana, font-size:12px;}
span#font1{font-family:NonExistingFont1, Verdana, font-size:12px;}
span#font2{font-family:NonExistingFont2, Verdana, font-size:12px;}

...

Then create HTML for each case:
<span id="knownfont">Lorem ipsum dolor sit amet</span>
<span id="font1">Lorem ipsum dolor sit amet</span>
<span id="font2">Lorem ipsum dolor sit amet</span>

然后编写一个脚本,比较已知font-span和其他每个字体的宽度。如果宽度不同,则字体存在于客户端上。

答案 7 :(得分:0)

我知道所有浏览器都不支持它,但是如here所描述的那样在css中有@ font-face,所以如果你知道你的用户在IE上(例如)你可以用它来获取字体。