Google шрифтове не работят в Китай - как да го оправя
Причината, поради която използваме Google API, за да обслужваме библиотеки като jQuery и уеб шрифтове, е, че обслужва бързо чрез надеждните инфраструктури на Google. Използва се почти навсякъде и толкова много, че някои потребители вече могат да съхраняват кеша в браузъра си, което прави зареждането на библиотеките заредено. дори по-бързо.
За съжаление в Китай това не е така. През 2014 г. правителството на Китай затвори достъпа до много от услугите на Google, включително Google API изглежда частично счупен в Китай, тъй като jQuery и уеб шрифтовете, хоствани в Google, са недостъпни.
В този пост ще видим как да заобиколим китайската "цифрова" Велика стена, така че нашият уебсайт може да работи като този, който се разглежда извън Китай. Ще използваме алтернативна библиотека за шрифтове, която отразява Google Шрифтове и библиотеки, но първо трябва да въведем някои мерки, за да идентифицираме потребители, които са от Китай..
Идентифициране на местоположението на потребителя
Първо, ще трябва да открием откъде е нашият посетител и да го направим, като използваме този WIPMania API, който позволява извличането на геолокация на посетителя, включително името на държавата:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', функция (данни) swal ('Вие сте от', data.address.country););
Използваме jQuery $ .getJSON
да се обадите на API. След това преминаваме data.address.country
което трябва да ни каже откъде е посетителят. Ето демонстрация.
Предоставяне на алтернативен източник на уеб шрифтове
Така че сега, когато можем да извлечем нашето местоположение за посетители, ще заменим Google Шрифтове с библиотеки Useso, услуга на CDN, която отразява шрифтовете и библиотеките от Google API, за да обслужва посетители от Китай.
На този етап все още имаме стилове за шрифтове, сочещи към Google API:
Ние ще заменим HREF
в рамките на връзка
елемент с JavaScript функция.
функция replaceGoogleCDN () $ ('link'). всеки (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com $ (this) .attr ('href', $ replace););
Тази функция замества всяка връзка, към която се отнася //fonts.useso.com/
вместо посочване на адреса на Google API, //fonts.googleapis.com/
.
Функцията ще се изпълнява само когато посетителят е от CN
, Международният код на Китай за страната.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', функция (данни) if (data.address.country_code == 'CN') заменетеGoogleCDN (););
Всички сме готови. Сега посетителите от Китай ще получават шрифтове чрез //fonts.useso.com/
което не е блокирано от китайското правителство.