【JS】web浏览器访问本地系统字体列表

ops/2024/10/21 10:12:06/

 1、核心API: queryLocalFonts;以下为主要注意事项:

  • 注意浏览器最低版本

  • 需用户授权

  • 网站是否安全,若不安全默认禁止获取本地字体列表


# 代码演示

javascript">export async function getLocalFonst() {if ("queryLocalFonts" in window) {try {const availableFonts = await (window as any).queryLocalFonts();if (!availableFonts.length) {return [];}return availableFonts;} catch (err) {return Promise.reject(err);}} else {return Promise.reject("浏览器版本太低 or 网站不安全");}
}

# 代码讲解

  1. if ("queryLocalFonts" in window) 
    1. 用来判断用户浏览器版本是否可调用queryLocalFonts方法。
    2. 但是!如果该网站不安全,那么谷歌浏览器强制禁止获取系统字体,queryLocalFonts方法一定为undefined
  2. const availableFonts = await (window as any).queryLocalFonts(); 

    1. 该方法是异步的,使用时需注意;

    2. 返回值为用户的字体列表数据,对象数组,对象类型为 FontData 类型;

    3. 但是!如果用户拒绝了你的字体获取申请,那么该返回值为[],一般系统字体列表为[]基本不可能,所以此时肯定就是用户拒绝了,一旦拒绝了,代码再次调用也没用,需要用户手动去浏览器设置里打开该网站的字体权限;

  3. try catch 说实话应该没啥用,以防万一 才加上去的。。MDN上写有两种错误类型,但没法验证。大佬们有方法验证的请赐教~~


就以上内容了,over~~


http://www.ppmy.cn/ops/37741.html

相关文章

文件一键删除:高效清理电脑空间,批量删除重复文件的步骤与技巧

在数字化时代,我们的电脑中储存了大量的文件,从文档、图片到视频、音频等,各类文件混杂在一起。随着时间的推移,电脑中的文件数量不断增长,重复文件也随之增多,占用了宝贵的硬盘空间。为了高效清理电脑空间…

【JavaEE精炼宝库】计算机是如何工作的

目录 前言: 一、冯诺依曼体系 二、CPU基本知识 2.1 硬盘|内存|CPU关系: 2.2 指令: 2.3 CPU是如何执行指令的(重点): 2.4 小结: 三、编程语言 3.1 程序: 3.2 编程语言发展&a…

数据结构===栈

文章目录 栈的定义实现一个栈用数组实现栈用链表实现栈支持动态扩容的栈 栈的应用小结 栈的定义 栈是一种先进后出的数据结构。它的操作受限。 栈,是一种先进后出,或者后进先出的数据结构。跟数组和链表相比,有一定的限制性。毕竟&#xff0…

上海市计算机学会竞赛平台2022年11月月赛丙组奇偶数的判定

题目描述 给定一个整数 𝑛n,若 𝑛n 是一个偶数,输出 even,若 𝑛n 是一个奇数,输出 odd。 输入格式 单个整数:表示 𝑛n。 输出格式 单个字符串:表示 &…

Codeforces Round 942 (Div.1) (Div. 2) 2A~2D

2A.Contest Proposal(枚举) 题意: 一个竞赛包含 n n n个问题,第 i i i个问题的难度预计最多为 b i b_i bi​。现在已经有 n n n个问题提案,第 i i i个问题的难度为 a i a_i ai​。最初, a 1 , a 2 , … ,…

Linux实操之常用指令详解

文章目录 vi 和 vimvi 和 vim 基本使用 开机、重启和用户登录注销关机&重启命令用户登录和注销 用户管理基本介绍基本语法细节说明修改密码删除用户查询用户信息指令切换用户查看当前用户/登录用户用户组 实用指令指定运行级别帮助指令文件目录类时间和日期类搜索查找类压缩…

Leetcode274

题目 274. H 指数 思路 题目有点绕,最开始就想到了对数组进行排序,那就可以通过下标来得到有多少篇论文的引用大于等于当前论文的引用,如果大于了当前论文的引用量则将当前论文的引用量更新为h值。后面考虑到[3,3]这种情况,也就是…

MySQL数据库——23.元数据

MySQL 元数据 是关于数据库和表结构的数据,它包含了数据库中的各种信息,例如表的结构、索引、触发器、存储过程等。元数据存储在系统数据库中,主要包括以下几个系统表: information_schema: 这个数据库包含了 MySQL 数据库服务器…