Homepage » Coding » Google Fonts non funziona in Cina - Come risolverlo

    Google Fonts non funziona in Cina - Come risolverlo

    Il motivo per cui utilizziamo le API di Google per servire librerie come jQuery e Web Fonts è che serve rapidamente attraverso le affidabili infrastrutture di Google. È usato quasi ovunque, e così tanto che alcuni utenti potrebbero già avere la cache memorizzata nel loro browser, il che fa caricare le librerie anche Più veloce.

    Sfortunatamente, questo non è il caso in Cina. Il governo cinese ha chiuso l'accesso a molti servizi di Google, tra cui le API di Google nel 2014. Le probabilità sono che il tuo sito web possa apparire parzialmente rotto in Cina perché i caratteri jQuery e web ospitati su Google non sono accessibili.

    In questo post vedremo come aggirare la "Grande Muraglia" digitale della Cina, quindi il nostro sito web può funzionare come se fosse visualizzato al di fuori della Cina. Utilizzeremo una libreria di font alternativa che rispecchia Google Fonts e le librerie, ma prima dovremo mettere in atto alcune misure per identificare gli utenti che provengono dalla Cina.

    Identificazione della posizione dell'utente

    Per cominciare, dovremo trovare da dove proviene il nostro visitatore e per farlo, useremo questa API WIPMania che consente il recupero della geolocalizzazione di un visitatore, incluso il nome del suo paese:

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', function (data) swal ('You are from', data.address.country);); 

    Usiamo jQuery $ GetJSON chiamare l'API. Quindi passiamo data.address.countryche dovrebbe dirci da dove viene il visitatore. Ecco una demo.

    Fornire fonti di font Web alternative

    Ora che possiamo recuperare la posizione dei nostri visitatori, sostituiremo Google Fonts con le librerie Useso, un servizio CDN che esegue il mirroring di Fonts e librerie dalle API di Google, per servire i visitatori dalla Cina.

    In questa fase, abbiamo ancora i nostri stili di carattere che puntano all'API di Google:

      

    Sostituiremo il href all'interno del collegamento elemento con una funzione JavaScript.

     function replaceGoogleCDN () $ ('link'). each (function () var $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '; $ (this) .attr (' href ', $ replace););  

    Questa funzione sostituisce ogni collegamento a cui fare riferimento //fonts.useso.com/ al posto di indicare l'indirizzo dell'API di Google, //fonts.googleapis.com/.

    La funzione verrà eseguita solo quando il visitatore proviene CN, Codice internazionale della Cina.

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

    Siamo tutti pronti. Ora, i visitatori dalla Cina verranno serviti i caratteri via //fonts.useso.com/ che non è bloccato dal governo cinese.