王朝网络
分享
 
 
 

网页中如何获取客户端系统已安装的所有字体?

王朝html/css/js·作者佚名  2007-06-23
宽屏版  字体: |||超大  

自这篇文章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#代码获取服务器系统中的字体(暂时略过,有空再写)。它的优点是可以直接获取服务器端的字体,以保持开发的一致性。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有