Domača » Kodiranje » Google Fonts ne dela na Kitajskem - kako popraviti

    Google Fonts ne dela na Kitajskem - kako popraviti

    Razlog, da uporabljamo Google API za strežnik knjižnic, kot sta jQuery in Web Fonts, je, da hitro deluje prek zanesljivih Googlovih infrastruktur. Uporablja se skoraj povsod in toliko, da imajo nekateri uporabniki že shranjeni predpomnilnik v brskalniku, zaradi česar se knjižnice naložijo celo hitreje.

    Žal na Kitajskem ni tako. Kitajska vlada je v letu 2014 zaprla dostop do številnih Googlovih storitev, vključno z Google API-jem delno zdrobljen na Kitajskem, ker jQuery in spletne pisave, gostujoče v Googlu, niso dostopne.

    Na tem mestu bomo videli, kako obiti kitajski "digitalni" Great Wall, tako da lahko naša spletna stran deluje tako, kot se gleda izven Kitajske. Uporabili bomo alternativno knjižnico pisav, ki zrcali Google Fonts in knjižnice, vendar bomo morali najprej vnesti nekatere ukrepe za identifikacijo uporabnikov, ki prihajajo iz Kitajske..

    Prepoznavanje lokacije uporabnika

    Za začetek bomo morali poiskati, kje je naš obiskovalec, in za to bomo uporabili ta API WIPMania, ki omogoča iskanje geolokacije obiskovalca, vključno z imenom države:

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkcija (podatki) swal ('Vi ste iz', data.address.country);); 

    Uporabljamo jQuery $ .getJSON za klic API-ja. Potem gremo data.address.countryki nam mora povedati, od kod je obiskovalec. Tukaj je demo.

    Zagotavljanje alternativnega vira spletnega fonta

    Zdaj, ko lahko pridobimo lokacijo za obiskovalce, bomo zamenjali Google Pisave s knjižnicami Useso, storitvijo CDN, ki z Google API-ja odseva pisave in knjižnice, ki bodo služile obiskovalcem iz Kitajske..

    Na tej stopnji še vedno obstajajo slogi pisav, ki kažejo na Google API:

      

    Zamenjali bomo href znotraj povezavo element s funkcijo JavaScript.

     funkcija zamenjaGoogleCDN () $ ('link'). vsak (funkcija () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (this) .attr (' href ', $ replace););  

    Ta funkcija nadomesti vsako povezavo, na katero se sklicuje //fonts.useso.com/ namesto naslova API za Google, //fonts.googleapis.com/.

    Funkcija se bo zagnala samo, ko bo obiskovalec iz CN, Mednarodna koda Kitajske.

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

    Vsi smo pripravljeni. Zdaj bodo obiskovalci iz Kitajske prejeli pisave prek //fonts.useso.com/ ki ga ne blokira kitajska vlada.