在Shadow DOM中使用Google字体

时间:2019-03-27 16:25:07

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

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

我正在将此样式文本注入头部:

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");

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

1 个答案:

答案 0 :(得分:0)

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

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