`
caozuiba
  • 浏览: 901079 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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


分享到:
评论

相关推荐

    js获取电脑中所安装的所有字体

    可用于js获取本地电脑所安装的所有字体,用法有说明,把js放在网页中运行即可

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过...

    基于J2EE框架的个人博客系统项目毕业设计论...

    由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过...

    精易官方免费模块v3.60版

    3.完善 “网页_禁止允许gif图片”“网页_禁止允许显示图片” “网页_禁止允许背景声音”“网页_禁止允许点击声音” “网页_禁止允许播放网页视频”“网页_禁止允许一键操作” 的备注信息 1.增加网页_禁止允许一键...

    《Visual C# .NET精彩编程实例集锦》配套光盘文件【全】

    实例78 如何获取系统已经安装的字体 实例79 如何获取系统安装日期和启动时间 实例80 如何获取cpu信息 实例81 如何浏览注册表信息 实例82 如何隐藏系统驱动器 实例83 如何清理系统回收站 实例84 如何制作日志...

    citrix 中文管理操作手册

    禁用服务器上所有已发布应用程序的命令行验证 42 配置已发布内容的位置 43 配置内容重定向 43 将内容从客户端重定向到服务器 43 配置从客户端到服务器的内容重定向 44 配置内容重定向时使用客户端设备上的 Windows ...

    Visual C# .NET精彩编程实例集锦

    实例78 如何获取系统已经安装的字体 实例79 如何获取系统安装日期和启动时间 实例80 如何获取CPU信息 实例81 如何浏览注册表信息 实例82 如何隐藏系统驱动器 实例83 如何清理系统回收站 实例84 如何制作日志查看器 ...

    vc++ 应用源码包_6

    DOM应用---遍历网页中的元素 dshowplayer 媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 ...

    vc++ 应用源码包_5

    DOM应用---遍历网页中的元素 dshowplayer 媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 ...

    android源码包集合4

    zz-doctor中医大夫助理信息系统.rar 个人消费记录软件.zip 从android中调用web service的源码.rar 从网络上获取图片.rar 仿iphone 气泡短信 DEMO.rar 仿ireader书架.zip 仿QQ微信登录页面.rar 仿UCWEB界面源码.rar ...

    vc++ 应用源码包_1

    DOM应用---遍历网页中的元素 dshowplayer 媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 ...

    vc++ 应用源码包_2

    DOM应用---遍历网页中的元素 dshowplayer 媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 ...

    C++Builder精彩编程实例集锦的源代码前3部分.rar

    实例106 如何获取系统所有文件类型 实例107 如何获取和设置文件属性 实例108 如何获取和设置文件时间属性 实例109 如何对文件名函数进行操作 实例110 如何读写文本文件 实例111 如何打印文本文件 实例112 如何...

    精易模块[源码] V5.15

    5、修正“类_APIHOOK-&gt;取地址”当安装时不填后缀,而取地址填写后无法获取已安装地址BUG,感谢易友【@ChongZi】反馈。 6、修正“窗口_枚举所有子窗口”当过滤类名输入空符号或一段空文本后无法枚举的BUG,感谢易友...

    vc++ 应用源码包_3

    DOM应用---遍历网页中的元素 dshowplayer 媒体播放器的实现,实现了VMR7、VMR9、EVR方式。 DSoundManager 实现了声音管理。 Excel文件的导入和导出操作 主要的实现在CMyExcel类中。 expclass_src dll库的演示。 ...

    C++Builder精彩编程实例集锦的源代码后3部分.rar

    实例106 如何获取系统所有文件类型 实例107 如何获取和设置文件属性 实例108 如何获取和设置文件时间属性 实例109 如何对文件名函数进行操作 实例110 如何读写文本文件 实例111 如何打印文本文件 实例112 如何...

    第一部分 界面设计

    实例106 如何获取系统所有文件类型 实例107 如何获取和设置文件属性 实例108 如何获取和设置文件时间属性 实例109 如何对文件名函数进行操作 实例110 如何读写文本文件 实例111 如何打印文本文件 实例112 如何...

    C#开发典型模块大全

    13.3.6 获取FTP服务器中的所有文件 329 13.3.7 批量上传文件 333 13.3.8 批量下载文件 337 13.3.9 删除FTP中的文件或文件夹 340 第14章 魔法兔子模块 14.1 概述 344 14.2 关键技术 344 14.2.1 获取...

    C#开发典型模块大全(光盘)

    13.3.6 获取FTP服务器中的所有文件 13.3.7 批量上传文件 13.3.8 批量下载文件 13.3.9 删除FTP中的文件或文件夹 第14章 魔法兔子模块 14.1 概述 14.2 关键技术 14.2.1 获取进程信息 14.2.2 获取计算机信息 14.2.3 ...

    C#开发典型模块大全(光盘)第一部分

    13.3.6 获取FTP服务器中的所有文件 13.3.7 批量上传文件 13.3.8 批量下载文件 13.3.9 删除FTP中的文件或文件夹 第14章 魔法兔子模块 14.1 概述 14.2 关键技术 14.2.1 获取进程信息 14.2.2 获取计算机信息 14.2.3 ...

Global site tag (gtag.js) - Google Analytics