我正在尝试为Web项目加载大约40种字体。人们可以在网上商店中选择自定义字体。我使用谷歌的Web字体加载器,它运行良好,IE8及更低版本除外。
所以我正在使用Webfont Loader需要从Google加载的正确字体系列打印我的php数组。如果我尝试加载所有40种字体,它适用于除Internet Explorer 8及更低版本之外的所有浏览器。
如果我将font-array限制为6种字体,则会加载这6种字体。但是当我只是向数组中添加一个字体时,IE8无法加载字体。我从开发人员工具的“网络”选项卡中收到错误请求,但我在http请求中的网址似乎没问题。
之前有人遇到过这个问题吗? HTTP-Header中的请求URL的长度是否限制在IE8及以下?
<script type="text/javascript">
WebFontConfig = {
google: { families: /*json_encode(php array here)*/ },
};
(function() {
var wf = document.createElement('script');
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})();
</script>
我还尝试将所有家庭粘贴到一个“链接”中。但也是...... IE8及以下版本的错误请求。
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family= /* families */">
%7的请求为“|”和回应:
GET /css?family=Aclonica%7CAveria+Serif+Libre%7CBoogaloo%7CCandal%7CCantora+One%7CCapriola%7CCarter+One%7CChewy%7CCoda+Caption:800%7CComfortaa%7CCourgette%7CCreepster%7CCrete+Round%7CDamion%7CDays+One%7CFrancois+One%7CFredoka+One%7CGalindo%7CGloria+Hallelujah%7CIndie+Flower%7CIrish+Grover%7CJust+Me+Again+Down+Here%7CLeckerli+One%7CLobster+Two%7CLondrina+Solid%7CLove+Ya+Like+A+Sister%7CMcLaren%7CMiniver%7CPiedra%7CPlaster%7CPoiret+One%7CQuantico%7CRacing+Sans+One%7CRadley%7CRammetto+One%7CRevalia%7CSchoolbell%7CSmokum%7CSniglet%7CStint+Ultra+Condensed%7CSue+Ellen+Francisco%7CUbuntu+Mono%7CUltra%7CUnifrakturCook:700%7CWaiting+for+the+Sunrise%7CYesteryear HTTP/1.1
https://docs.google.com/open?id=0B4anyChu_EhkRFNmRmd3UGY4RlU
我觉得这很奇怪:我在ResponseBody中从Google收到了正确的数据..
https://docs.google.com/open?id=0B4anyChu_EhkdFVqVjFVUVhFRWs
答案 0 :(得分:1)
通过仅在IE8及以下版本中使用WebFontLoader一次加载5种字体来解决。
<script src="http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
<script>
<?php
$splitArrays = array_chunk($families, 5);
foreach ($splitArrays as $id => $split) {
echo 'WebFont.load({google:{families: ' . json_encode($split) . '}});';
}
?>
</script>
Google Web Fonts don't work in IE8。本文还介绍了如何通过'&lt; link&gt;'加载多种字体IE8中的标签失败 - 因此这个错误似乎不是特定于使用网络字体加载器。