Główna » Kodowanie » Czcionki Google nie działają w Chinach - jak to naprawić

    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.countryco 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.