Một kỹ thuật hoạt động là xem xét phong cách tính toán của phần tử. Điều này được hỗ trợ trong Opera và Firefox (và tôi trinh thám trong safari, nhưng chưa được thử nghiệm). IE (ít nhất là 7), cung cấp một phương thức để có được một kiểu, nhưng dường như đó là bất cứ thứ gì có trong biểu định kiểu, không phải là kiểu được tính toán. Thêm chi tiết về quirksmode: Nhận Kiểu
Đây là một chức năng đơn giản để lấy phông chữ được sử dụng trong một phần tử:
/**
* 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;
}
}
Nếu quy tắc CSS cho điều này là:
#fonttester {
font-family: sans-serif, arial, helvetica;
}
Sau đó, nó sẽ trả về helvetica nếu nó được cài đặt, nếu không, arial và cuối cùng, tên của phông chữ sans-serif mặc định của hệ thống. Lưu ý rằng thứ tự các phông chữ trong khai báo CSS của bạn là rất quan trọng.
Một cách hack thú vị mà bạn cũng có thể thử là tạo ra nhiều yếu tố ẩn với nhiều phông chữ khác nhau để cố gắng phát hiện phông chữ nào được cài đặt trên máy. Tôi chắc rằng ai đó có thể tạo một trang thu thập thống kê phông chữ tiện lợi với kỹ thuật này.