דף הבית » קידוד » גופני Google לא עובד בסין - כיצד לתקן את זה

    גופני Google לא עובד בסין - כיצד לתקן את זה

    הסיבה שאנו משתמשים ב- API של Google כדי לשרת ספריות כגון jQuery וגופני אינטרנט היא שהיא משרתת במהירות את התשתית האמינה של Google. הוא משמש כמעט בכל מקום, וכל כך הרבה משתמשים כבר יש את המטמון המאוחסן בדפדפן שלהם, מה שהופך את הספריות לטעון אפילו מהיר יותר.

    למרבה הצער, זה לא המקרה בסין. ממשלת סין סגרה גישה לשירותים רבים של Google, כולל Google API בשנת 2014. רוב הסיכויים שהאתר שלך עשוי מופיעים שבורים חלקית בסין משום שה- jQuery וגופני האינטרנט המתארחים ב- Google אינם נגישים.

    בהודעה זו, אנחנו הולכים לראות איך לעקוף את "הדיגיטלי" החומה הגדולה של סין, כך האתר שלנו יכול לרוץ כמו איך זה נראה מחוץ לסין. אנו נשתמש בספריית גופן חלופית המשקפת את הגופנים והספריות של Google, אך תחילה נצטרך לנקוט צעדים מסוימים כדי לזהות משתמשים שמגיעים מסין.

    זיהוי מיקום המשתמש

    ראשית, נצטרך למצוא היכן האורח שלנו הוא, וכדי לעשות זאת, אנו נשתמש בממשק ה- API של WIPMania המאפשר את אחזור המיקום הגיאוגרפי של המבקר, כולל שם ארצו:

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', פונקציה (נתונים) swal ('אתה מ', data.address.country);); 

    אנו משתמשים ב- jQuery $ .getJSON כדי להתקשר ל- API. ואז אנחנו עוברים data.address.countryאשר אמור לספר לנו איפה האורח הוא מ. הנה הדגמה.

    מתן מקור גופן אלטרנטיבי אינטרנט

    כעת, כדי שנוכל לאחזר את מיקום המבקר שלנו, אנו עומדים להחליף את גופני Google עם ספריות Useso, שירות CDN שמשקף גופנים וספריות מ- Google API, כדי להציג מבקרים מסין.

    בשלב זה, עדיין יש לנו את סגנונות הגופן המצביעים על ממשק API של Google:

      

    אנחנו נחליף את href בתוך ה קישור רכיב עם פונקציית JavaScript.

     ($) ($ $ intial = $ (this) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (this) .attr (' href ', $ replace););  

    פונקציה זו מחליפה כל קישור כדי להתייחס //fonts.useso.com/ במקום להצביע על כתובת ה- API של Google, //fonts.googleapis.com/.

    הפונקציה תפעל רק כאשר המבקר הוא מ CN, קוד המדינה הבינלאומי של סין.

     $ .getJSON ('http://api.wipmania.com/jsonp?callback=?', פונקציה (נתונים) if (data.address.country_code == 'CN') replaceGoogleCDN (); 

    כולנו מוכנים. עכשיו, מבקרים מסין יוגשו באמצעות גופנים //fonts.useso.com/ אשר אינו נחסם על ידי הממשלה הסינית.