Google Fonts nefunguje v Číně - Jak to opravit
Důvodem, proč používáme Google API pro poskytování knihoven, jako je jQuery a Web Fonts, je, že slouží rychle prostřednictvím spolehlivých infrastruktur Google. Používá se téměř všude a tolik, že někteří uživatelé již mohou mít v prohlížeči uloženou mezipaměť dokonce rychleji.
Bohužel, v Číně tomu tak není. Čínská vláda v roce 2014 uzavřela přístup k mnoha službám společnosti Google včetně služby Google API. Šance jsou, že vaše webové stránky mohou vypadají částečně zlomené v Číně, protože jQuery a webová písma hostovaná v Googlu jsou nepřístupná.
V tomto příspěvku uvidíme, jak obejít čínskou "digitální" Velkou zeď, takže naše webové stránky mohou běžet tak, jak je to vidět mimo Čínu. Budeme používat alternativní knihovnu písem, která zrcadlí Google Fonts a knihovny, ale nejprve budeme muset dát některá opatření k identifikaci uživatelů, kteří pocházejí z Číny.
Identifikace umístění uživatele
Nejdříve budeme muset zjistit, odkud náš návštěvník pochází, a budeme tak používat toto rozhraní WIPMania API, které umožňuje vyhledání geolokace návštěvníka včetně názvu země:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkce (data) swal ('Jste z', data.address.country););
Používáme jQuery $ .getJSON
volání API. Pak projdeme data.address.country
který by nám měl říct, odkud je návštěvník. Zde je ukázka.
Poskytování alternativního zdroje webového písma
Takže teď, když můžeme načíst návštěvníky, nahradíme Google Fonts knihovnami Useso, službou CDN, která zrcadlí fonty a knihovny z Google API, aby sloužila návštěvníkům z Číny.
V této fázi stále máme styly písma směřující k rozhraní Google API:
Nahradíme href
v rámci odkaz
prvek s funkcí JavaScript.
funkce replaceGoogleCDN () $ ('link'). každý (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (this) .attr (' href ', $ replace););
Tato funkce nahrazuje každý odkaz, na který se odkazuje //fonts.useso.com/
místo na adresu Google API, //fonts.googleapis.com/
.
Funkce bude spuštěna pouze tehdy, když je návštěvník CN
, Mezinárodní kód Číny.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', funkce (data) if (data.address.country_code == 'CN') replaceGoogleCDN (););
Všichni jsme nastaveni. Návštěvníci z Číny budou nyní obsluhováni fonty přes //fonts.useso.com/
která není blokována čínskou vládou.