首页 / 知识
关于javascript:如何检测网页中使用了哪种定义的字体?
2023-04-11 14:11:00

How to detect which one of the defined font was used in a web page?假设我的页面中有以下CSS规则:
如何检测用户浏览器中使用了哪种定义的字体? 对于想知道为什么要这样做的人来说,是因为我检测到的字体包含其他字体不可用的字形。如果用户没有字体,那么我希望它显示一个链接,要求用户下载该字体(以便他们可以将我的Web应用程序使用正确的字体)。 当前,我正在向所有用户显示下载字体链接。我只想为未安装正确字体的人显示此内容。 我已经看到它以一种不稳定但相当可靠的方式完成了。基本上,将元素设置为使用特定字体,并为该元素设置字符串。如果为元素设置的字体不存在,则采用父元素的字体。因此,他们要做的是测量渲染字符串的宽度。如果它与所需字体(与派生字体相反)相匹配,则表示存在。这不适用于等宽字体。 这里是哪里来的: 我写了一个简单的JavaScript工具,您可以用它来检查是否安装了字体。 github上的jFont Checker @pat实际上,Safari不会提供所使用的字体,至少根据我的经验,无论是否安装了Safari,Safari始终会返回堆栈中的第一个字体。
假设已安装/使用Helvetica,您将得到:
我通过了这个问题,并创建了Font Unstack,它测试堆栈中的每种字体并仅返回安装的第一个字体。它使用@MojoFilter提到的技巧,但是如果安装了多个,则仅返回第一个。尽管它确实遭受了@tlrobinson提到的弱点(Windows将用Arial代替Helvetica并报告已安装Helvetica),但否则效果很好。 有一个简单的解决方案-只需使用
此功能将完全满足您的要求。执行时,它将返回用户/浏览器的字体类型。希望这会有所帮助。 一种有效的技术是查看元素的计算样式。 Opera和Firefox支持此功能(我在Safari中进行了侦察,但尚未测试)。 IE(至少为7)提供了一种获取样式的方法,但似乎是样式表中的内容,而不是计算出的样式。有关quirksmode的更多详细信息:获取样式 这是获取元素中使用的字体的简单函数:
如果CSS规则是:
然后,如果已安装helvetica,则应返回helvetica,如果没有,则返回arial,最后返回系统默认的sans-serif字体的名称。请注意,CSS声明中的字体顺序很重要。 您还可以尝试的一个有趣的技巧是创建具有许多不同字体的隐藏元素,以尝试检测计算机上安装了哪些字体。我确定有人可以使用此技术制作漂亮的字体统计信息收集页面。 简化形式为:
如果您需要更完整的内容,请查看此内容。 另一种解决方案是通过
当然它不能解决任何版权问题,但是您可以始终使用免费字体,甚至可以制作自己的字体。您将同时需要 n n n n |
最新内容
相关内容
python可以做网页编程吗?
python可以做网页编程吗?,技术,公司,数据,网络,人工智能,工资,分析,工作,设计,市场,什么是Python? Python是一种计算机编程语言,也是一种python如何定义class
python如何定义class,代码,数据,概念,名字,培训,工作,形态,对象,函数,方法,python中的类(Class)是一个抽象的概念,比函数还要抽象,这也就是Pythpython定义函数不带括号吗
python定义函数不带括号吗,培训,代码,函数,名称,情况,括号,定义,圆括号,自变量,参数,python定义函数带不带括号:函数能提高应用的模块性,和代码python字符串如何定义
python字符串如何定义,培训,数据,字符串,字符,引号,中文,内容,定义,源程序,比如说,简单地理解,字符串就是“一串字符”,也就是用引号内的任何数python怎么解析网页数据
python怎么解析网页数据,数据,培训,信息,标准,工具,网页,结构,标签,对象,以上,python网页解析器1、常见的python网页常见的python网页解析工python定义类不写括号吗?
python定义类不写括号吗?,状态,数据,统一,培训,地方,合法,定义,变量,方法,实例,python定义类的简单语法如下:class类名:执行语句...零个到多个python函数定义如何使用
python函数定义如何使用,代码,数据,名称,名字,地方,培训,函数,定义,圆括号,语句,定义一个函数使用关键字def告诉Python你将要定义一个函数。python怎样定义函数返回值
python怎样定义函数返回值,培训,代码,函数,定义,形式,以上,感觉,结果,更多,内容,python函数返回值,两种形式:1返回一个值。2返回多个值。现看看python如何自定义一个函数
python如何自定义一个函数,代码,名称,培训,函数,圆括号,参数,定义,表达式,选择性,字符串,python函数是组织好的,可重复使用的,用来实现单一,或相python如何定义列表
python如何定义列表,数据,培训,列表,一致,工厂,合法,名称,数组,元素,类型,在实际开发中,经常需要将一些(不只一个)数据暂储起来,以便将来使用。python如何定义一个函数
python如何定义一个函数,培训,画线,代码,较大,合法,工具,函数,定义,单词,参数,python函数的定义定义函数,也就是创建一个函数,可以理解为创建一python函数定义的规则
python函数定义的规则,培训,名称,代码,函数,圆括号,定义,规则,选择性,自变量,参数,python函数定义的规则1、函数代码块从def关键字开始,然后连