| 導購 | 订阅 | 在线投稿
分享
 
 
 

網頁中如何獲取客戶端系統已安裝的所有字體?

來源:互聯網  2007-06-23 04:20:05  評論

自這篇文章http://blog.csdn.net/johnsuna/archive/2006/05/11/724868.aspx(八月初將共享本人幾個月心血的FreeTextBox改進版,敬請屆時關注 )發布後,有人在問:如何獲取客戶端已安裝的所有字體?

如何獲取系統字體?

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;" onmouseenter="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();"中的兩個斜杠隱掉,變成:

onmouseenter="fontFacesMenuEnter(this, 'dlgHelper');updateFontList();"

步驟四:保存你的網頁,刷新它,再試試看。在“FontList”的TextArea區域應該已經有了你的所有系統字體了,先複制再貼粘到你需要的地方。

比如:第3條中<OPTION VALUE=""><- 設置字體 -></OPTION>的下面,這樣,你就可以將它變成服務器上的相關字體(如果你的服務器的字體配置與你現有電腦字體配置一樣的話)了。

(2)使用C#代碼獲取服務器系統中的字體(暫時略過,有空再寫)。它的優點是可以直接獲取服務器端的字體,以保持開發的一致性。

自這篇文章[url=http://blog.csdn.net/johnsuna/archive/2006/05/11/724868.aspx]http://blog.csdn.net/johnsuna/archive/2006/05/11/724868.aspx[/url](八月初將共享本人幾個月心血的FreeTextBox改進版,敬請屆時關注 )發布後,有人在問:如何獲取客戶端已安裝的所有字體? 如何獲取系統字體? 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;" onmouseenter="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();"中的兩個斜杠隱掉,變成: onmouseenter="fontFacesMenuEnter(this, 'dlgHelper');updateFontList();" 步驟四:保存你的網頁,刷新它,再試試看。在“FontList”的TextArea區域應該已經有了你的所有系統字體了,先複制再貼粘到你需要的地方。 比如:第3條中<OPTION VALUE=""><- 設置字體 -></OPTION>的下面,這樣,你就可以將它變成服務器上的相關字體(如果你的服務器的字體配置與你現有電腦字體配置一樣的話)了。 (2)使用C#代碼獲取服務器系統中的字體(暫時略過,有空再寫)。它的優點是可以直接獲取服務器端的字體,以保持開發的一致性。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有