Písmo Google nefunguje v Číne - ako ju opraviť
Dôvodom, prečo používame rozhranie Google API na zobrazovanie knižníc, ako je jQuery a Web Fonts, je to, že rýchlo slúži prostredníctvom spoľahlivých infraštruktúr spoločnosti Google. Používa sa takmer všade a toľko, že niektorí používatelia už môžu mať uloženú pamäť v prehliadači, čo spôsobuje, že sa knižnice načítajú i rýchlejšie.
Bohužiaľ to nie je prípad Číny. Vláda Číny zatvorila prístup k mnohým službám spoločnosti Google vrátane služby Google API v roku 2014. Je pravdepodobné, že vaše webové stránky môžu sú čiastočne rozbité v Číne, pretože jQuery a webové fonty, ktoré sú umiestnené v službe Google, sú nedostupné.
V tomto príspevku uvidíme, ako obísť čínsku "digitálnu" Veľkú stenu, takže naše webové stránky môžu bežať tak, ako to vidí mimo Číny. Budeme používať alternatívnu knižnicu fontov, ktorá odzrkadľuje písma a knižnice Google, najprv však budeme musieť uviesť niektoré opatrenia na identifikáciu používateľov, ktorí pochádzajú z Číny.
Identifikácia polohy používateľa
Najprv budeme musieť zistiť, odkiaľ je náš návštevník, a použijeme tento API WIPMania, ktorý umožňuje vyhľadanie geolokácie návštevníka vrátane názvu krajiny:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkcia (dáta) swal ('Vy ste z', data.address.country););
Používame jQuery $ .getJSON
zavolajte API. Potom prejdeme data.address.country
čo by malo povedať, odkiaľ je návštevník. Tu je demo.
Poskytovanie alternatívneho zdroja písma na webe
Teraz, keď môžeme načítať miesto pre návštevníkov, nahradíme písma Google s knižnicami Useso, službou CDN, ktorá odzrkadľuje písma a knižnice od Google API, aby slúžili návštevníkom z Číny.
V tomto štádiu stále máme štýly písma, ktoré poukazujú na rozhranie Google API:
Nahradíme to href
v rámci odkaz
element s funkciou JavaScript.
funkcia () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (toto) .attr (' href ', $ replace););
Táto funkcia nahrádza každý odkaz, na ktorý sa odkazuje //fonts.useso.com/
namiesto nasmerovania na adresu API Google, //fonts.googleapis.com/
.
Funkcia sa spustí iba vtedy, keď je návštevník od CN
, Čínsky medzinárodný kód krajiny.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkcia (dáta) if (data.address.country_code == 'CN') replaceGoogleCDN (););
Všetci sme pripravení. Teraz sa návštevníkom z Číny budú zobrazovať písma cez //fonts.useso.com/
ktorú čínska vláda nezabránila.