Домашняя » кодирование » Google шрифты не работают в Китае - как это исправить

    Google шрифты не работают в Китае - как это исправить

    Причина, по которой мы используем Google API для обслуживания таких библиотек, как jQuery и веб-шрифты, заключается в том, что он работает быстро благодаря надежной инфраструктуре Google. Он используется почти везде, и настолько, что некоторые пользователи уже могут хранить кеш в своем браузере, что заставляет библиотеки загружаться четное Быстрее.

    К сожалению, это не так в Китае. В 2014 году правительство Китая закрыло доступ ко многим службам Google, включая API Google. Скорее всего, ваш сайт может казаться частично сломанным в Китае, потому что jQuery и веб-шрифты, размещенные в Google, недоступны.

    В этом посте мы рассмотрим, как обойти «цифровую» Великую китайскую стену в Китае, чтобы наш веб-сайт мог работать так же, как и за пределами Китая. Мы будем использовать альтернативную библиотеку шрифтов, которая отражает Google шрифты и библиотеки, но сначала нам нужно будет принять некоторые меры для выявления пользователей, которые родом из Китая.

    Определение местоположения пользователя

    Для начала нам нужно выяснить, откуда наш посетитель, и для этого мы будем использовать этот API-интерфейс WIPMania, который позволяет получить геолокацию посетителя, включая название страны:

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) swal ('Вы из', data.address.country);); 

    Мы используем JQuery $ .getJSON вызвать API. Затем мы передаем data.address.countryкоторый должен сказать нам, откуда посетитель. Вот демо.

    Предоставление альтернативного источника веб-шрифтов

    Так что теперь, когда мы можем получить информацию о местоположении нашего посетителя, мы заменим шрифты Google на библиотеки Useso, службу CDN, которая отображает шрифты и библиотеки из API Google, для обслуживания посетителей из Китая..

    На этом этапе у нас все еще есть стили шрифтов, указывающие на Google API:

      

    Мы заменим HREF в пределах ссылка на сайт элемент с функцией JavaScript.

     function replaceGoogleCDN () $ ('link'). each (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com) / ',' //fonts.useso.com/ '); $ (this) .attr (' href ', $ replace););  

    Эта функция заменяет каждую ссылку на //fonts.useso.com/ вместо указания на адрес API Google, //fonts.googleapis.com/.

    Функция будет работать только когда посетитель CN, Международный код страны Китая.

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) if (data.address.country_code == 'CN') replaceGoogleCDN ();); 

    У нас все готово. Теперь посетителям из Китая будут вручаться шрифты через //fonts.useso.com/ который не заблокирован правительством Китая.