Google Webfonts (Loader) в IE8 или ниже

Я пытаюсь загрузить около 40 шрифтов для веб-проекта. У людей будет возможность выбирать между пользовательскими шрифтами в интернет-магазине. Я использую загрузчик веб-шрифтов от Google, и он работает хорошо, за исключением IE8 и ниже.

Поэтому я печатаю свой php-массив с правильными семействами шрифтов, которые загрузчик веб-шрифтов должен загрузить из Google. Если я попытаюсь загрузить все 40 шрифтов, он будет работать во всех браузерах, кроме Internet Explorer 8 и ниже.

Если я ограничу свой массив шрифтов 6 шрифтами, то эти 6 шрифтов будут загружены. Но когда я просто добавляю еще один шрифт в массив, IE8 не может загрузить шрифты. Я получаю неверный запрос на вкладке «Сеть» из инструментов разработчика, но мой URL-адрес в http-запросе выглядит нормально.

У кого-то еще была эта проблема раньше? Ограничена ли длина URL-адреса запроса в HTTP-заголовке в 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

И то, что я думаю, действительно странно: я получаю правильные данные от Google в ResponseBody..

https://docs.google.com/open?id=0B4anyChu_EhkdFVqVjFVUVhFRWs


person david    schedule 24.09.2012    source источник


Ответы (1)


Решается загрузкой 5 шрифтов одновременно с помощью WebFontLoader только в IE8 и ниже.

      <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 не работают в IE8. В этой статье также описывается, как происходит сбой при загрузке нескольких шрифтов с помощью тега '‹link›' в IE8, поэтому эта ошибка не относится к использованию загрузчика веб-шрифтов.

person david    schedule 26.09.2012