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

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

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

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

只要Flash可用,它就有可能。 见http://www.maratz.com/blog/archives/2006/08/18/detect-visitors-fonts-with-flash/

从这个问题中查看jQuery插件FontUnstack 。

这是Windows和Mac机器上最常见的字体列表 (每个字体都有图像比较)。 我在选择要在项目中使用的字体时使用它。

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

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

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

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

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

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

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

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

查看我的博客文章了解更多信息和演示实现 。

没有好办法做到这一点。 虽然如果你有一个你想知道的字体列表,创建一个具有始终存在的后备的类:

 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: Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet 

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

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