躍然一笑
2019-11-15 12:55:20
假設我的頁面中有以下CSS規則:body { font-family: Calibri, Trebuchet MS, Helvetica, sans-serif;}如何檢測用戶瀏覽器中使用了哪種定義的字體?編輯讓人不知道為什么要這樣做的人:我檢測到的字體包含其他字體不可用的字形,并且當用戶沒有該字體時,我要顯示一個鏈接,要求用戶下載該字體,以便他們可以以正確的字體使用我的Web應用程序。目前,我正在為所有用戶顯示下載字體鏈接,我只想為未安裝正確字體的用戶顯示此字體。
3 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
我寫了一個簡單的JavaScript工具,您可以用它來檢查是否安裝了字體。
它使用簡單的技術,并且在大多數情況下應該是正確的。
GitHub上的 jFont Checker

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
實際上,Safari并沒有提供所使用的字體,至少在我看來,無論是否安裝了Safari,Safari始終會返回堆棧中的第一個字體。
font-family: "my fake font", helvetica, san-serif;
假設已安裝/使用過Helvetica,您將獲得:
Safari(我相信其他Webkit瀏覽器)中的“我的假字體”。
Gecko瀏覽器和IE中的“我的假字體helvetica,san-serif”。
Opera 9中的“ helvetica”,盡管我讀到他們正在Opera 10中對其進行更改以匹配Gecko。
我通過了這個問題,并創建了Font Unstack,它測試堆棧中的每種字體并僅返回第一個已安裝的字體。它使用@MojoFilter提到的技巧,但是如果安裝了多個,則僅返回第一個。盡管它確實遭受了@tlrobinson提到的弱點(Windows將用Arial代替Helvetica并報告已安裝Helvetica),但它還是可以正常工作的。
添加回答
舉報
0/150
提交
取消