参考自网上,非原创。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 </head> 6 <body> 7 <div style="left: 0px; positon: absolute; top: 0px;"> 8 <object id="dlgHelper" classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" style="width: 0;height: 0;"></object> 9 <script type="text/javascript"> 10 ‘use strict‘; 11 var fontsArray = [], 12 fontsIsAdded = false; 13 function fillList(target, dlgHelperId) { 14 if (!fontsIsAdded || !fontsArray.length) { 15 fontsArray = getSystemFonts(dlgHelperId); 16 fontsIsAdded = true; 17 for (var i = 1; i < fontsArray.length; i++) { 18 var option = document.createElement(‘option‘); 19 option.value = fontsArray[i]; 20 option.text = fontsArray[i]; 21 target.add(option); 22 } 23 } 24 } 25 function getSystemFonts(dlgHelperId) { 26 var len = window.document.all(dlgHelperId).fonts.count; 27 var fArray = []; 28 for (i = 1;i <= len;i++) { 29 fArray[i] = window.document.all(dlgHelperId).fonts(i); 30 } 31 return fArray; 32 } 33 </script> 34 </div> 35 <select id="fontsList"> 36 <option value=""><pre><- 设置字体 -></pre></option> 37 </select> 38 </body> 39 </html>
以上在win7,win10下IE浏览器中测试有效。
待解决疑问:如果把fillList放在window.onload事件中,在win10下IE浏览器无法获取系统字体,debug时显示window.document.all(dlgHelperId)未定义或为null。
原文:http://www.cnblogs.com/mDal/p/5701690.html