如何通过Chrome扩展程序添加@font-face样式表规则是推荐的方法?问题是字体嵌入的url位于扩展程序中,因此我必须在JavaScript中使用chrome.extension.getURL
来实现。
我已经尝试了通过内容脚本使用document.styleSheets[0].addRule
,但没有成功。需要澄清的是,我还将该字体列在了web_accessible_resources中。
如何通过Chrome扩展程序添加@font-face样式表规则是推荐的方法?问题是字体嵌入的url位于扩展程序中,因此我必须在JavaScript中使用chrome.extension.getURL
来实现。
我已经尝试了通过内容脚本使用document.styleSheets[0].addRule
,但没有成功。需要澄清的是,我还将该字体列在了web_accessible_resources中。
在您的内容脚本中注入一个<style>
节点,可以使用以下方式:
var styleNode = document.createElement ("style");
styleNode.type = "text/css";
styleNode.textContent = "@font-face { font-family: YOUR_FONT; src: url('"
+ chrome.extension.getURL ("YOUR_FONT.otf")
+ "'); }"
;
document.head.appendChild (styleNode);
您还可以在manifest.json中的web_accessible_resources
部分指定扩展程序使用的任何其他内容。文档在这里。
将以下内容添加到您的manifest.json文件中:
```html"web_accessible_resources": []
``` "web_accessible_resources": [
"fonts/*.*",
"templates/*.html"
]
同时在你的CSS中修正URL:
@font-face {
font-family: 'MyFont';
src: url('chrome-extension://__MSG_@@extension_id__/fonts/font.eot') /* ... */;
}