It's based on the installed fonts on your computer, so why not list all of them?
If only there were a way to determine installed fonts, but sadly, Javascript does not have that capability. It's possible to loop through known font names to determine the availability of a font within the browser, but that list isn't exhaustive. You can only detect the fonts that you choose to test for.
var Detector =
{
init: function()
{
this.h = document.getElementsByTagName("BODY")[0];
this.d = document.createElement("DIV");
this.s = document.createElement("SPAN");
this.d.appendChild(this.s);
this.d.style.fontFamily = "sans";
this.s.style.fontFamily = "sans";
this.s.style.fontSize = "72px";
this.s.innerHTML = "mmmmmmmmmmlil";
this.h.appendChild(this.d);
this.defaultWidth = this.s.offsetWidth;
this.defaultHeight = this.s.offsetHeight;
this.h.removeChild(this.d)
},
test: function(a)
{
this.h.appendChild(this.d);
var b = [];
b.name = this.s.style.fontFamily = a;
b.width = this.s.offsetWidth;
b.height = this.s.offsetHeight;
this.h.removeChild(this.d);
a = a.toLowerCase();
if (a == "serif") {
b.found = true
} else {
b.found = (b.width != this.defaultWidth || b.height != this.defaultHeight)
}
return b
},
getFontList: function()
{
this.init();
var a = ["cursive", "monospace", "serif", "sans-serif", "fantasy", "default","Arial", "Arial Black", "Arial Narrow", "Arial Rounded MT Bold", "Book Antiqua", "Bookman Old Style", "Bradley Hand ITC", "Bodoni MT", "Calibri", "Century", "Century Gothic", "Casual", "Comic Sans MS", "Consolas", "Copperplate Gothic Bold", "Courier", "Courier New", "English Text MT", "Felix Titling", "Futura", "Garamond", "Geneva", "Georgia", "Gentium", "Haettenschweiler", "Helvetica", "Impact", "Jokerman", "King", "Kootenay", "Latha", "Liberation Serif", "Lucida Console", "Lalit", "Lucida Grande", "Magneto", "Mistral", "Modena", "Monotype Corsiva", "MV Boli", "OCR A Extended", "Onyx", "Palatino Linotype", "Papyrus", "Parchment", "Pericles", "Playbill", "Segoe Print", "Shruti", "Tahoma", "TeX", "Times", "Times New Roman", "Trebuchet MS", "Verdana", "Verona"];
var c = "";
for (i = 0; i < a.length; ++i) {
var b = this.test(a[i]);
if (b.found) {
c += b.name + ","
}
}
return c.slice(0, - 1)
}
};