const url_to_font_name = 'URL to font'
const font_name = new FontFace('Font Name', `url(${url_to_font_name})`);
document.fonts.add(font_name);
// Work that does not require `font_name` to be loaded…
await font_name.load()
// Work that requires `font_name` to be loaded…
6条答案
按热度按时间58wvjzkj1#
如果你知道CSS,你可以使用
document.write
动态地附加一个样式表......我猜这会算作使用CSS,但它会工作0wi1tuuw2#
除了
@font-face
规则之外,没有办法让浏览器从网络上加载字体。理论上,你可以从JavaScript创建@font-face
规则,而不必使用document.write
(或document.createElement("style")
等),如果你使用CSS Object Model;但我不指望它能在任何浏览器中实现。ws51t4hk3#
不,没有。Javascript可以操纵DOM,但它不关心格式。
yrwegjxp4#
有一个实验性的技术"CSS Font Loading API"允许在javascript中加载和使用字体,目前在chrome和firefox中工作。
lsmd5eda5#
您可以:
这里有一把小提琴:http://jsfiddle.net/maniator/QMZ8N/
这仅仅向元素添加预定义字体。
这不向页面添加字体样式。为此,您可能必须使用CSS
gc0ot86w6#
2023年更新:使用
FontFace
如MDN上的CSS字体加载API所示:
我将
url_to_font_name
变量分离出来,以表示它可以是一个 * 动态生成的字符串 *。这是我看到的使用JavaScript加载字体与CSS相比的 * 最大好处 *。