機能する手法は、計算された要素のスタイルを確認することです。これは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を返します。最後に、システムのデフォルトのsans-serifフォントの名前を返します。CSS宣言でのフォントの順序は重要です。
あなたが試すことができる興味深いハックは、マシンにインストールされているフォントを検出するために、たくさんの異なるフォントを使ってたくさんの隠し要素を作成することです。誰かがこのテクニックで気の利いたフォント統計収集ページを作ることができると私は確信しています。