网页中如何获取客户端系统已安装的所有字体?
如何獲取系統字體?
1.首先在需要獲取系統字體的網頁<body>后加入以下代碼:
<DIV style="LEFT: 0px; POSITION: absolute; TOP: 0px">
<OBJECT ID="dlgHelper" CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" WIDTH="0px" HEIGHT="0px">
</OBJECT>
<script src="FontFacesMenu.js" language="javascript" type="text/javascript"></script>
</DIV>
2.將以下內容保存為:FontFacesMenu.js文件。
// FontFacesMenu.js
var fontsArray = new Array();
var fontsIsAdded = false;
function fontFacesMenuEnter(fontFacesDropdownList, dlgHelperId)
{
?if((fontsIsAdded == false )||(fontsArray==''))
?{
??fontsArray = getSystemFonts(dlgHelperId);
??
??fontsIsAdded = true;
??for (var s=1; s < fontsArray.length; s++)
??{
???newOption = document.createElement("option");
???newOption.value = fontsArray[s];
???newOption.text = fontsArray[s];
???fontFacesDropdownList.add(newOption);
??}
?}
}
function getSystemFonts(dlgHelperId)
{
?var a = document.all(dlgHelperId).fonts.count;
?var fArray = new Array();
?for (i = 1;i <= parent.document.all(dlgHelperId).fonts.count;i++){
??fArray[i] = parent.document.all(dlgHelperId).fonts(i);
?}
?return fArray;
}
3.在網頁需要插入字體下拉菜單的位置處插入以下代碼:
系統字體:
<SELECT ID="blessingWords_FontFamily_DL" name="blessingWords_FontFamily_DL" onChange="//SetFontFace(this[this.selectedIndex].innerText,this[this.selectedIndex].value);this.selectedIndex=0;" style="width:140px;" οnmοuseenter="fontFacesMenuEnter(this, 'dlgHelper');//updateFontList();">
<OPTION VALUE=""><- 設置字體 -></OPTION>??????
</SELECT>
OK!看到效果了沒有?如果可以,恭喜你了!
注:如果需要加上選中后的事件,在onChange中改變成你自己的相應事件處理即可。
以上對客戶端的開發有用,如果需要服務器端的字體,繼續往下看,否則略過即可。
4.如何將我的系統字體保存為文件?(對于服務器端開發略有小用)
(1)如果你的服務器的字體配置與你現有電腦字體配置一樣的話,使用Javascript腳本,然后COPY至寫字板或記事本,再保存。
接著上面步驟繼續往下做:
(續)步驟一:將以下代碼放在<Body>區內:
<textarea name="FontList" id="FontList" cols="35" rows="20" id="FontList" style="position:absolute; left:0px; top:0px; z-index:10000"></textarea>
步驟二:
<Script>
// "blessingWords_FontFamily_DL" 需要改成你自己獲取系統字體下拉菜單的名字(如果你已經改過的話)
var dropDownListName = "blessingWords_FontFamily_DL";
function updateFontList()
{
?var list="";
?var blessingWords_FontFamily_DL = document.all[dropDownListName];
?for(i=0; i <blessingWords_FontFamily_DL.options.length; i++)
?{
??list += '<OPTION VALUE="' + blessingWords_FontFamily_DL.options[i].text + '">'+ blessingWords_FontFamily_DL.options[i].text + '</OPTION>/r/n';
?}
?document.all("FontList").value = list;
}
</Script>
步驟三:將上面第3條中最后的"//updateFontList();"中的兩個斜杠隱掉,變成:
οnmοuseenter="fontFacesMenuEnter(this, 'dlgHelper');updateFontList();"
步驟四:保存你的網頁,刷新它,再試試看。在“FontList”的TextArea區域應該已經有了你的所有系統字體了,先復制再貼粘到你需要的地方。
比如:第3條中<OPTION VALUE=""><- 設置字體 -></OPTION>的下面,這樣,你就可以將它變成服務器上的相關字體(如果你的服務器的字體配置與你現有電腦字體配置一樣的話)了。
(2)使用C#代碼獲取服務器系統中的字體(暫時略過,有空再寫)。它的優點是可以直接獲取服務器端的字體,以保持開發的一致性。
?
總結
以上是生活随笔為你收集整理的网页中如何获取客户端系统已安装的所有字体?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有规律格式化文本文件插入数据库
- 下一篇: 网上几种常见校验码图片分析