JS jQuery查看系统中安装的字体

摘要:
=defaultHeight[baseFonts[index]]);h.removeChild;detected=detected||matched;}returndetected;}this.detect=detect;};2.页面调用方法˂!

1.下载插件:FontDetect插件 地址:http://www.lalit.org/lab/javascript-css-font-detect/

或者复制以下代码到fontdetect.js:

var Detector = function() {
// a font will be compared against all the three default fonts.
// and if it doesn't match all 3 then that font is not available.
var baseFonts = ['monospace', 'sans-serif', 'serif'];
//we use m or w because these two characters take up the maximum width.
// And we use a LLi so that the same matching fonts can get separated
var testString = "mmmmmmmmmmlli";
//we test using 72px font size, we may use any size. I guess larger the better.
var testSize = '72px';
var h = document.getElementsByTagName("body")[0];
// create a SPAN in the document to get the width of the text we use to test
var s = document.createElement("span");
s.style.fontSize = testSize;
s.innerHTML = testString;
var defaultWidth = {};
var defaultHeight = {};
for (var index in baseFonts) {
//get the default width for the three base fonts
s.style.fontFamily = baseFonts[index];
h.appendChild(s);
defaultWidth[baseFonts[index]] = s.offsetWidth; //width for the default font
defaultHeight[baseFonts[index]] = s.offsetHeight; //height for the defualt font
h.removeChild(s);
}
function detect(font) {
var detected = false;
for (var index in baseFonts) {
s.style.fontFamily = font + ',' + baseFonts[index]; // name of the font along with the base font for fallback.
h.appendChild(s);
var matched = (s.offsetWidth != defaultWidth[baseFonts[index]] || s.offsetHeight != defaultHeight[baseFonts[index]]);
h.removeChild(s);
detected = detected || matched;
}
return detected;
}
this.detect = detect;
};

2.页面调用方法

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://t.zoukankan.com/js/fontdetect.js"></script>
<script type="text/javascript">
window.onload = function() {
var detective = new Detector();
alert(detective.detect('方正兰亭准黑简体'));
};
</script>
</head>
<body>
</body>
</html>

免责声明:文章转载自《JS jQuery查看系统中安装的字体》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇菜鸟学STM32之跑马灯动态规划——线性dp下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jQuery 时间控件推荐

My97DatePicker  My97DatePicker是一个更全面,更人性化,并且速度一流的日期选择控件。具有强大的日期范围限制功能;自定义事件和丰富的API库;多语言支持和自定义皮肤支持;跨无限级框架显示和自动选择显示位置。My97DatePicker    JS Calendar  JS Calendar是一个支持多种浏览器,多种语言的日...

javascript js获取url及url参数解析

js获取url及url参数解析 一.获取url: var url=window.location.herf; 二.url参数解析: function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var obj= new Object();...

js模拟发送 FormData数据

后台express需要connect-multiparty模块接收formData的数据类型 class ourFormData { constructor(data, rs) { return new String((function (data, rs) { let data_string = ' '...

RSA加密前端JS加密,后端asp.net解密,报异常

RSA加密前端JS加密,后端asp.net解密,报异常 参考引用:http://www.ohdave.com/rsa/的JS加密库 前端JS加密代码: function GetChangeStr() { debugger; var pwdStr = document.getElementById("txtPa...

jQuery同步Ajax带来的UI线程阻塞问题及解决办法

俗话说不作死就不会死,今天作死了一回,写了一个比较二逼的函数,遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下。   事情起因是这样的,因为页面上有多个相似的异步请求动作,本着提高代码可重用性的原则,我封装了一个名为getData的函数,它接收不同参数,只负责获取数据,然后把数据return。基本的逻辑剥离出来是这样的: function get...

原生js实现form表单序列化

当我们有form表单而且里面的表单元素较多时,咱们总不能一个个去获取表单元素内的值来进行拼接吧!这样会很让人蛋疼!为了方便与后台交互并且提高自己的开发效率,并且不让你蛋疼;我们一起用原生来写一个表单序列化方法: 先介绍一下jquery中有相应的表单序列化的方法: 1.serialize()方法 格式:var data = $("form").seriali...