html - 将 Google 字体与 Shadow DOM 结合使用

标签 html css google-chrome-extension fonts shadow-dom

我正在尝试在内容脚本端的扩展中使用谷歌字体 - 我从扩展目录下载并加载的 Noto 字体可以工作(它也在 web_accessible_resources 中声明)并且在 ShadowDOM 中工作正常,但是谷歌字体没有

我将此样式文本注入(inject)头部:

var styleNode = document.createElement("style");
styleNode.type = "text/css";
styleNode.textContent =
"@font-face { font-family: Noto Serif; src: url('" +
browser.extension.getURL("NotoSerifCJKjp-SemiBold.otf") +
"') format('opentype'); } @font-face { font-family: Poppins; font-style: normal; font-weight: 400; src: url(https://fonts.gstatic.com/s/poppins/v6/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2'); }";
document.head.appendChild(styleNode);

我也尝试过

@import url("https://fonts.googleapis.com/css?family=Poppins");

采用 Shadow dom 风格,但这也不起作用

最佳答案

添加字体作为链接有效,不知道为什么:

var linkNode = document.createElement("link"); 
linkNode.type = "text/css"; 
linkNode.rel = "stylesheet"; 
linkNode.href = "//fonts.googleapis.com/css?family=Poppins";
document.head.appendChild(linkNode);

也可以这样做:

<link href="//fonts.googleapis.com/css?family=PT+Sans" rel="stylesheet" type="text/css">

根据Google Fonts Font Doesn't load

关于html - 将 Google 字体与 Shadow DOM 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55382081/

相关文章:

html - 带有仅带边距的部分垂直线的单独 div

php - 使用 Yii 框架时标题和元标记的顺序

css - 如何使 DIV 以 5 px 的边距占据整个窗口的高度和宽度

html - 如何使用 CSS 制作漫画无 MS 文本 Logo ?

google-chrome-extension - 用于 wget 下载的 Chrome 扩展

google-chrome - 调试新的 Mozilla WebExtension API

javascript - 非常简单的 Chrome 扩展来显示警报

javascript - 使用iframe上传文件时如何添加请求头?

html - 使用 Flex 在元素旁边显示元素

html - 小型设备或窗口上屏幕右侧的空白区域