機能するテクニックは、要素の計算されたスタイルを調べることです。これは Opera と Firefox でサポートされています (私は safari で調査しましたが、テストしていません)。IE (少なくとも 7) は、スタイルを取得する方法を提供しますが、計算されたスタイルではなく、スタイルシートにあるもののようです。quirksmode の詳細:スタイルの取得
要素で使用されているフォントを取得する簡単な関数を次に示します。
/**
* Get the font used for a given element
* @argument {HTMLElement} the element to check font for
* @returns {string} The name of the used font or null if font could not be detected
*/
function getFontForElement(ele) {
if (ele.currentStyle) { // sort of, but not really, works in IE
return ele.currentStyle["fontFamily"];
} else if (document.defaultView) { // works in Opera and FF
return document.defaultView.getComputedStyle(ele,null).getPropertyValue("font-family");
} else {
return null;
}
}
これに対する CSS ルールが次の場合:
#fonttester {
font-family: sans-serif, arial, helvetica;
}
次に、インストールされている場合は helvetica を返し、インストールされていない場合は arial を返し、最後にシステムのデフォルトのサンセリフ フォントの名前を返します。CSS 宣言でのフォントの順序は重要であることに注意してください。
あなたが試すことができる興味深いハックは、マシンにどのフォントがインストールされているかを検出しようとするために、多くの異なるフォントで多くの隠し要素を作成することです. 誰かがこのテクニックを使って気の利いたフォント統計収集ページを作れると確信しています。