javascript – 如何将谷歌字体加载到Chrome打包应用程序而无需下载?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何将谷歌字体加载到Chrome打包应用程序而无需下载?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2069字,纯文字阅读大概需要3分钟。
内容图文
如何加载谷歌字体,我真的必须下载并打包我的应用程序使用的每种字体吗?我试图避免打包字体,因为它们太多了我的应用程序会很大(它是一个网页编辑器)
<link href='http://fonts.googleapis.com/css?family=Nunito' rel='stylesheet' type='text/css'>
> Refused to load the stylesheet 'http://fonts.googleapis.com/css?family=Nunito' because it violates the following Content Security Policy directive: "style-src 'self' data: chrome-extension-resource: 'unsafe-inline'".
我以为我可以加载它作为一个blob但我不确定它是否可以完成.数据已下载但没有变化,我试过这个:
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://themes.googleusercontent.com/static/fonts/nunito/v4/0rdItLTcOd8TSMl72RUU5w.woff", true);
xhr.responseType = "blob";
xhr.onreadystatechange = function() {
console.log("STATE", xhr.readyState);
if (xhr.readyState == 4) {
var myfontblob = window.webkitURL.createObjectURL(xhr.response);
$("<style>").text("@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400; src: '"+myfontblob+"' format('woff'); }").prependTo("head");
}
};
xhr.send();
解决方法:
使用沙箱不是一个好方法
它可以使您的应用程序暴露于攻击和安全问题.
这在Chrome App环境中很有用,CSP是如此严格.
内容安全政策(CSP)
使用XMLHttpRequest()加载内容时;就像Mud说的那样你必须要关心CSP.要了解有关它的更多信息,我建议Google团队的Mike West在html5rocks.com上发布这篇博文.
但是,如果您的目标是谷歌Chrome应用程序,则它们与扩展程序的概念不同,并且具有不同的规则.
在manifest.json中设置权限
在Chrome应用的manifest.json中,您无法再直接为content_security_policy设置环境.但是,您可以向要在内容安全策略的白名单中添加的uri添加一些权限.这样做很容易,只需在关键字“权限”中添加一个白名单uri数组,就像这样:
{
"manifest_version": 2,
"name": "Your Awsome App Name",
"version": "1",
"permissions":[
"http://localhost/",
"http://youraswomedomain.io/"
],
"app": {
"background": {
"scripts": ["main.js"]
}
},
"minimum_chrome_version": "23",
"icons":{
"16": "icon_16.png",
"128": "icon_128.png"
}
}
如果使用Angular.js,您将拥有一个标签:ng-csp,可以直接使用CSP开箱即用!您只需将标签放在正文中或在您将要使用ng-app的地方.
内容总结
以上是互联网集市为您收集整理的javascript – 如何将谷歌字体加载到Chrome打包应用程序而无需下载?全部内容,希望文章能够帮你解决javascript – 如何将谷歌字体加载到Chrome打包应用程序而无需下载?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。