Czcionki Google nie działają w Chinach - jak to naprawić
Powodem, dla którego korzystamy z interfejsu API Google do obsługi bibliotek, takich jak jQuery i Web Fonts, jest to, że działa szybko dzięki niezawodnej infrastrukturze Google. Jest on używany prawie wszędzie i tak bardzo, że niektórzy użytkownicy mogą już mieć pamięć podręczną zapisaną w przeglądarce, co powoduje ładowanie bibliotek parzysty szybciej.
Niestety tak nie jest w Chinach. Rząd Chin zamknął dostęp do wielu usług Google, w tym Google API w 2014 roku. Prawdopodobnie Twoja witryna może wydają się częściowo złamane w Chinach, ponieważ jQuery i czcionki internetowe hostowane w Google są niedostępne.
W tym poście zobaczymy, jak ominąć „cyfrowy” chiński Wielki Mur, aby nasza strona internetowa mogła działać tak, jak jest oglądana poza Chinami. Będziemy używać alternatywnej biblioteki czcionek, która odzwierciedla Google Fonts i biblioteki, ale najpierw musimy wprowadzić pewne środki w celu identyfikacji użytkowników pochodzących z Chin.
Identyfikacja lokalizacji użytkownika
Na początek będziemy musieli ustalić, skąd pochodzi nasz gość, i w tym celu użyjemy tego interfejsu API WIPMania, który umożliwia pobieranie geolokalizacji użytkownika, w tym nazwy kraju:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) swal ('Jesteś z', data.address.country););
Używamy jQuery $ .getJSON
zadzwonić do API. Potem mijamy data.address.country
co powinno nam powiedzieć, skąd pochodzi użytkownik. Oto demo.
Udostępnianie alternatywnego źródła czcionek internetowych
Teraz, kiedy możemy odzyskać naszą lokalizację dla odwiedzających, zamierzamy zastąpić Google Fonts bibliotekami Useso, usługą CDN, która odzwierciedla czcionki i biblioteki Google API, aby obsługiwać odwiedzających z Chin.
Na tym etapie nadal mamy nasze style czcionek wskazujące na Google API:
Zastąpimy href
w obrębie połączyć
element z funkcją JavaScript.
function replaceGoogleCDN () $ ('link'). each (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (this) .attr (' href ', $ replace););
Ta funkcja zastępuje każde łącze, do którego się odwołuje //fonts.useso.com/
zamiast wskazywać na adres Google API, //fonts.googleapis.com/
.
Funkcja będzie działać tylko wtedy, gdy użytkownik jest z CN
, Międzynarodowy kod kraju w Chinach.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) if (data.address.country_code == 'CN') replaceGoogleCDN (););
Jesteśmy gotowi. Teraz goście z Chin będą otrzymywać czcionki za pośrednictwem //fonts.useso.com/
który nie jest blokowany przez chiński rząd.