HTML Erkennung installierter Fonts mit Javascript

QuHno

Außer Betrieb
Ein kleines Abfallprodukt aus meinem Labor, was während eines anderen Projekts benötigt wurde - vielleicht kann es ja jemand gebrauchen.

Erkennung welche Fonts auf dem System installiert sind mit Hilfe von Javascript, HTML und CSS
Englisch, weil ich es noch auf einer internationalen Seite verlinkt habe. Einfach in den Sourcecode schauen und den Code klauen. Bitte die "Lizenz" beachten ;)

Die Erkennung funktioniert nur mit modernen Browsern wie Opera 11 und Firefox 4 - also nicht mit IE<9 ;) - aber darin ziemlich zuverlässig.

Opera hat keinerlei Probleme, den korrekten Font Namen zurück zu geben, Firefox und IE versuchen nicht vorhandene Fonts durch möglichst ähnliche zu ersetzen.
So birgt z.B. diese Font Deklaration im CSS eine Überraschung, wenn man Helvetica nicht installiert hat, aber dafür Comic Sans MS (wie es auf den meisten Windows Systemen der Fall sein dürfte)
Code:
#testelement {font-family: Helvetica,"Comic Sans MS";}
Normalerweise sollte nach dieser Deklaration "Comic Sans MS" verwendet werden, wenn Helvetica nicht vorhanden ist, zumindest sagt das die W3C Spezifikation so. In Opera 11 ist das der Fall, jedoch nicht im Fx und im IE:
Beide ersetzen das nicht vorhandene Helvetica durch das zwar extrem ähnliche, aber nicht identische Arial.

In diesem Fall ist das noch eine halbwegs sinnvolle Ersetzung, aber bei einigen anderen Fonts käme dadurch nur Müll heraus, speziell wenn der Font Designer in den Meta Angaben in der Font Datei falsche Angaben gemacht hat. Ich habe deshalb den Check um einen Quervergleich mit "Comic Sans MS" erweitert, weil dieser Font zwar hässlich ist, aber Dank seiner Hässlichkeit so einmalig, dass er andere Dimensionen als 90% aller existierenden Fonts hat. Dadurch konnte ich bei dem Test gegen die ca. 450 häufigsten auf Systemen installieren Fonts die Falschmeldungen im Fx und im IE auf ca. 30 reduzieren (viel weniger geht nicht, einige Schriften sind sich einfach zu ähnlich), wobei der Fx etwas genauer arbeitet als der IE. Opera würde diesen Vergleich nicht benötigen, da Opera korrekte Werte zurück gibt.

Ich weiß leider nicht, wie gut das unter Linux (ohne fontdetect) oder Mac und mit Safari oder der Petze von Google funktioniert, deswegen würde ich mich über Rückmeldungen freuen.
 
Zuletzt bearbeitet:
Oben