前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网页中如何获取客户端系统已安装的所有字体?

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

作者头像
Java架构师必看
发布于 2021-03-22 07:04:56
发布于 2021-03-22 07:04:56
7.4K0
举报
文章被收录于专栏:Java架构师必看Java架构师必看

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

本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
预训练模型助力,真实动画视频生成 | 开源专题 No.92
SadTalker 是一个基于音频驱动的单幅图像对话头像动画生成项目。它可以将单幅人像图像与音频结合,生成逼真的视频对话头像。该项目的主要功能和核心优势包括:
小柒
2024/06/25
1640
预训练模型助力,真实动画视频生成 | 开源专题 No.92
多语言支持 SDK:轻松集成 LLMs 到应用程序 | 开源日报 No.261
semantic-kernel 是一个集成了最新的 LLM 技术(如 OpenAI、Azure OpenAI 和 Hugging Face)与传统编程语言(如 C#、Python 和 Java)的 SDK。该项目主要功能、关键特性和核心优势包括:
小柒
2024/05/17
2210
多语言支持 SDK:轻松集成 LLMs 到应用程序 | 开源日报 No.261
OpenSign:安全可靠的电子签名解决方案 | 开源日报 No.76
这个开源项目是一个为期 12 周的全面课程,由微软云倡导者团队提供。它旨在帮助初学者掌握 JavaScript、CSS 和 HTML 的基础知识。每一节都包括预习和复习测验、详细的书面指南、解决方案、作业等内容。通过以项目为基础的学习方法,该课程旨在帮助您通过实践构建技能,并优化知识积累。
小柒
2023/11/07
8860
OpenSign:安全可靠的电子签名解决方案 | 开源日报 No.76
软件开发自动化到智能文档检索:大语言模型驱动的开源项目盘点 | 开源专题 No.46
这是一个 ChatGPT 代码解释器的开源实现项目,使用了 LangChain 和 CodeBoxes 进行后端沙盒式 Python 代码执行。该项目具有以下特性和优势:
小柒
2023/11/24
4240
软件开发自动化到智能文档检索:大语言模型驱动的开源项目盘点 | 开源专题 No.46
借助 AI 对话文档:100% 私密且无数据泄漏 | 开源日报 No.224
PrivateGPT 是一个可以与您的文档进行交互的项目,利用 GPT 的强大功能,100% 私密且无数据泄漏。
小柒
2024/04/01
1520
借助 AI 对话文档:100% 私密且无数据泄漏 | 开源日报 No.224
实时语音克隆:5 秒内生成任意文本的语音 | 开源日报 No.84
这个开源项目是一个实时语音克隆工具,可以在5秒内复制一种声音,并生成任意文本的语音。
小柒
2023/11/15
4390
实时语音克隆:5 秒内生成任意文本的语音 | 开源日报 No.84
开源日报 0817:以太坊实现、语言模型应用与实用工具
Go Ethereum 是以太坊协议的官方 Golang 执行层实现,可运行各种节点并提供网关访问以太坊网络;LangChain-Chatchat 是基于大语言模型的本地知识库问答应用实现,支持离线运行和多种模型接入;Shiori 是简单易用的书签管理器,支持命令行和 Web 应用程序,且可移植性强;Awesome Generative AI 是精选的生成式人工智能项目和服务列表,用于生成原创内容;DoctorGPT 是功能强大的语言模型,免费离线使用,适用于成为个人医生;Conferences 是会议演讲资料的存储库,方便查找和分享。
小柒
2023/09/02
2380
开源日报 0817:以太坊实现、语言模型应用与实用工具
区块链项目大揭秘,优势各异创未来 | 开源专题 No.79
Namada 是一个基于权益证明的 L1 跨链资产无关隐私平台。它使用 CometBFT 共识,支持任何本地或非本地资产的多资产隐蔽转账,并具有完整的 IBC 协议支持、内置以太坊桥接器、现代化权益证明系统 (自动奖励复利和三次减少)、以及基于股份加权的治理信号机制。并提供了一款多资产保护传输钱包,以便安全且私密地与该协议交互。
小柒
2024/05/17
1900
区块链项目大揭秘,优势各异创未来 | 开源专题 No.79
可无限定制的命令行提示工具:适用任何 Shell 和操作系统 | 开源日报 No.267
Starship 是一个极简、快速且可无限定制的命令行提示工具,可以在任何 shell 和操作系统上使用。其主要功能包括提供高度自定义的提示配置,并以一目了然的方式显示相关信息。
小柒
2024/05/29
1220
可无限定制的命令行提示工具:适用任何 Shell 和操作系统 | 开源日报 No.267
Zulip:开源团队协作工具,高效沟通与远程办公 | 开源日报 No.126
Zulip 是一个开源的团队协作工具,拥有独特的基于主题的线程功能,结合了电子邮件和聊天的优点,使远程工作更加高效和愉快。它是唯一设计用于实时和异步对话的现代团队聊天应用程序。其核心优势包括:
小柒
2023/12/26
4640
Zulip:开源团队协作工具,高效沟通与远程办公 | 开源日报 No.126
完全可定制的富文本编辑器:逻辑清晰,插件赋能 | 开源日报 No.218
Slate 解决了其他富文本库存在的问题,并基于几个原则:插件优先、无固定模式核心逻辑、嵌套文档模型和与 DOM 并行。
小柒
2024/03/19
2130
完全可定制的富文本编辑器:逻辑清晰,插件赋能 | 开源日报 No.218
无头富文本编辑器:框架无关,自由扩展 | 开源日报 No.300
tiptap 是一个面向 Web 开发者的无头富文本编辑器框架,基于可靠的 ProseMirror 库构建。它的核心优势在于:
小柒
2024/07/22
1440
无头富文本编辑器:框架无关,自由扩展 | 开源日报 No.300
Apache 开源现代数据编排平台:低代码易使用、高性能高可用 | 开源日报 No.264
Apache DolphinScheduler 是一款现代数据编排平台,具有低代码高性能工作流的敏捷创建能力。其主要功能和核心优势包括:
小柒
2024/05/29
3280
Apache 开源现代数据编排平台:低代码易使用、高性能高可用 | 开源日报 No.264
开源版 Sora:AI 视频生成的高性能实现 | 开源日报 No.291
Open-Sora 是一个开源项目,提供了类似于 OpenAI 的 Sora 的视频生成模型的高性能实现。该项目的主要功能和核心优势包括:
小柒
2024/07/10
1950
开源版 Sora:AI 视频生成的高性能实现 | 开源日报 No.291
构建、更改和自动化管理基础架构的高效工具 | 开源日报 0831
Terraform 是一个用于安全高效地构建、更改和版本化基础架构的工具。它可以管理现有且流行的服务提供商以及自定义内部解决方案。
小柒
2023/09/02
1950
构建、更改和自动化管理基础架构的高效工具 | 开源日报 0831
GPT-4o 客户端替代方案:支持屏幕阅读、麦克风交互 | 开源日报 No.277
gpt-computer-assistant 是一个为 Windows、macOS 和 Ubuntu 提供的 GPT-4o 替代方案。 该项目旨在为用户提供 ChatGPT MacOS 应用程序的替代品,支持在 Windows 和 Linux 系统上运行。 主要功能和优势包括:
小柒
2024/06/13
2820
GPT-4o 客户端替代方案:支持屏幕阅读、麦克风交互 | 开源日报 No.277
打造你的专属云开发环境:支持任意 IDE,任意云服务 | 开源日报 No.215
devpod 是一个开源的、仅限客户端的、不受限制的工具,可以与任何集成开发环境(IDE)一起使用,并允许您在任何云端、Kubernetes 或本地 Docker 上进行开发。
小柒
2024/03/18
3110
打造你的专属云开发环境:支持任意 IDE,任意云服务 | 开源日报 No.215
Ventoy:打造你的万能启动 U 盘 | 开源日报 No.146
Ventoy 是一个开源工具,用于创建支持 ISO/WIM/IMG/VHD(x)/EFI 文件的可启动 USB 驱动器。其主要功能包括将镜像文件复制到 USB 驱动器并进行引导、一次性复制多个镜像文件并提供引导菜单选择以及在本地磁盘中浏览和引导 ISO/WIM/IMG/VHD(x)/EFI 文件等。该项目的核心优势和关键特点包括:
小柒
2024/01/07
3700
Ventoy:打造你的万能启动 U 盘 | 开源日报 No.146
最佳照片管理应用!AI 赋能,私有部署 | 开源日报 No.211
photoprism 是一个基于人工智能的照片应用程序,适用于去中心化网络。它利用最新技术自动标记和查找图片,无需干扰用户。该项目具有以下主要功能和优势:
小柒
2024/03/18
4110
最佳照片管理应用!AI 赋能,私有部署 | 开源日报 No.211
Diagrams 图表即代码:用代码绘制云系统架构 | 开源日报 0910
Diagrams 是一个以代码形式绘制云系统架构的工具,贯穿“图表即代码”的理念。它可以在没有任何设计工具的情况下对新系统架构设计进行原型设计,还可以描述或可视化现有的系统架构。Diagram 支持主要提供商包括:AWS、Azure、GCP、Kubernetes 等,并且还支持 On-Premise 节点、SaaS 和主要编程框架和语言。Diagram as Code 允许您在任何版本控制系统中跟踪体系结构图变更。
小柒
2023/09/14
3170
Diagrams 图表即代码:用代码绘制云系统架构 | 开源日报 0910
推荐阅读
预训练模型助力,真实动画视频生成 | 开源专题 No.92
1640
多语言支持 SDK:轻松集成 LLMs 到应用程序 | 开源日报 No.261
2210
OpenSign:安全可靠的电子签名解决方案 | 开源日报 No.76
8860
软件开发自动化到智能文档检索:大语言模型驱动的开源项目盘点 | 开源专题 No.46
4240
借助 AI 对话文档:100% 私密且无数据泄漏 | 开源日报 No.224
1520
实时语音克隆:5 秒内生成任意文本的语音 | 开源日报 No.84
4390
开源日报 0817:以太坊实现、语言模型应用与实用工具
2380
区块链项目大揭秘,优势各异创未来 | 开源专题 No.79
1900
可无限定制的命令行提示工具:适用任何 Shell 和操作系统 | 开源日报 No.267
1220
Zulip:开源团队协作工具,高效沟通与远程办公 | 开源日报 No.126
4640
完全可定制的富文本编辑器:逻辑清晰,插件赋能 | 开源日报 No.218
2130
无头富文本编辑器:框架无关,自由扩展 | 开源日报 No.300
1440
Apache 开源现代数据编排平台:低代码易使用、高性能高可用 | 开源日报 No.264
3280
开源版 Sora:AI 视频生成的高性能实现 | 开源日报 No.291
1950
构建、更改和自动化管理基础架构的高效工具 | 开源日报 0831
1950
GPT-4o 客户端替代方案:支持屏幕阅读、麦克风交互 | 开源日报 No.277
2820
打造你的专属云开发环境:支持任意 IDE,任意云服务 | 开源日报 No.215
3110
Ventoy:打造你的万能启动 U 盘 | 开源日报 No.146
3700
最佳照片管理应用!AI 赋能,私有部署 | 开源日报 No.211
4110
Diagrams 图表即代码:用代码绘制云系统架构 | 开源日报 0910
3170
相关推荐
预训练模型助力,真实动画视频生成 | 开源专题 No.92
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档