标签:style blog http io ar color os sp java
来自ampedZ的博客园,原文地址:http://www.cnblogs.com/ampedZ/p/CheckFont.html
原理是根据设置span的字体,如果系统不存在指定名称对应的字体,则会以默认字体显示。
根据对比指定字体和默认字体的offsetWidth、offsetHeight值,以判断字体是否存在。
通过一个杜撰的字体名称来设置默认字体。
一般说来,span指定的文本越复杂,准确度越高。
<!DOCTYPE html> <html><head><style type="text/css"> div#divBase{text-align:center;width:283px;} div#divTitle{clear:both;text-align:center;padding:3px;} div#divInput{float:left;} div#divOutput{float:right;} div#divButton{float:none;vertical-align:middle;margin:57px;} div#divCopyright{clear:both;text-align:center;padding:3px;} textarea#textareaInput{resize:none;overflow:auto;width:106px;height:126px;} textarea#textareaOutput{resize:none;overflow:auto;width:106px;height:126px;}</style></head> <body><div id="divBase"> <div id="divTitle">字体检测</div> <div id="divInput"><textarea id="textareaInput"wrap="soft">FZDaHei-B02S,方正大黑简体 HYGothic-Extra Lucida Sans</textarea></div> <div id="divOutput"><textarea id="textareaOutput"wrap="soft"readonly=“true”></textarea></div> <div id="divButton"><input type="button"value="检测"onClick="CheckFont()"/></div> <div id="divCopyright">Copyright © 心のsky Group</div></div> <script type="text/javascript"src="CheckFont.js"></script> <script type="text/javascript">function CheckFont() {var t=document.getElementById("textareaInput").value;t=IsFontExistBatch(t);document.getElementById("textareaOutput").value=t;}</script> </body></html>
function IsFontExist(t) { if (t == "") {return ""}; var f = "Copyright © 心のsky Group"; var s = document.createElement("span"); s.style.fontSize = ‘72px‘; s.innerHTML = f; var b = document.getElementsByTagName("body")[0]; b.appendChild(s); s.style.fontFamily = f; var w = s.offsetWidth; var h = s.offsetHeight; s.style.fontFamily = t + ‘,‘ + f; var r =((s.offsetWidth != w) || (s.offsetHeight != h)); b.removeChild(s); return r?"存在":"不存在"; } function IsFontExistBatch(t) { var a = t.split("\n"); var r = new Array(); for (var i = 0; i < a.length; i++) { r[i] = IsFontExist(a[i]); } return r.join("\r\n"); }
标签:style blog http io ar color os sp java
原文地址:http://www.cnblogs.com/ampedZ/p/CheckFont.html