Google แบบอักษรไม่ทำงานในประเทศจีน - วิธีแก้ไข
เหตุผลที่เราใช้ Google API เพื่อให้บริการห้องสมุดเช่น jQuery และ Web Fonts ก็คือมันให้บริการที่รวดเร็วผ่านโครงสร้างพื้นฐานที่เชื่อถือได้ของ Google มันถูกใช้เกือบทุกที่และมากจนผู้ใช้บางคนอาจมีแคชเก็บไว้ในเบราว์เซอร์ของพวกเขาซึ่งทำให้ห้องสมุดโหลด แม้ ได้เร็วขึ้น.
น่าเสียดายที่ไม่ใช่ในประเทศจีน รัฐบาลจีนได้ปิดการเข้าถึงบริการต่างๆของ Google รวมถึง Google API ในปี 2014 โอกาสที่เว็บไซต์ของคุณอาจ ดูเหมือนจะหักบางส่วน ในประเทศจีนเนื่องจากไม่สามารถเข้าถึงแบบอักษร jQuery และแบบอักษรบนเว็บใน Google ได้.
ในบทความนี้เราจะดูวิธีการข้ามกำแพง "ดิจิตอล" ของจีนเพื่อให้เว็บไซต์ของเราสามารถทำงานได้เหมือนกับที่ดูจากภายนอกประเทศจีน เราจะใช้ไลบรารีฟอนต์ทางเลือกที่สะท้อน Google Fonts และไลบรารี่ แต่ก่อนอื่นเราจะต้องใช้มาตรการบางอย่างเพื่อระบุผู้ใช้ที่มาจากประเทศจีน.
การระบุตำแหน่งของผู้ใช้
ในการเริ่มต้นเราจะต้องค้นหาว่าผู้เข้าชมของเรามาจากที่ไหนและทำเช่นนั้นเราจะใช้ WIPMania API นี้เพื่อให้สามารถดึงข้อมูลตำแหน่งทางภูมิศาสตร์ของผู้เข้าชมรวมถึงชื่อประเทศของพวกเขา:
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', ฟังก์ชั่น (ข้อมูล) swal ('คุณมาจาก', data.address.country););
เราใช้ jQuery $ .getJSON
เพื่อเรียก API เราผ่านแล้ว data.address.country
ซึ่งควรบอกเราว่าผู้เข้าชมมาจากที่ใด นี่คือตัวอย่าง.
ให้ที่มาแบบอักษรทางเลือกของเว็บ
ดังนั้นตอนนี้เราสามารถดึงข้อมูลตำแหน่งผู้เยี่ยมชมของเราได้แล้วเราจะแทนที่ Google Fonts ด้วยไลบรารี Useso ซึ่งเป็นบริการ CDN ที่ทำหน้าที่เป็นแบบอักษรและไลบรารีจาก Google API เพื่อให้บริการผู้เข้าชมจากประเทศจีน.
ในขั้นตอนนี้เรายังคงมีรูปแบบตัวอักษรที่ชี้ไปยัง Google API:
เราจะเข้ามาแทนที่ href
ภายใน ลิงค์
องค์ประกอบที่มีฟังก์ชั่น JavaScript.
ฟังก์ชั่น replaceGoogleCDN () $ ('ลิงก์'). แต่ละอัน (ฟังก์ชั่น () var $ intial = $ (นี่) .attr ('href'), $ replace = $ intial.replace ('// fonts.googleapis.com / ',' //fonts.useso.com/ '); $ (นี่) .attr (' href ', $ replace););
ฟังก์ชั่นนี้จะแทนที่แต่ละลิงค์เพื่ออ้างอิง //fonts.useso.com/
แทนที่ชี้ไปยังที่อยู่ Google API, //fonts.googleapis.com/
.
ฟังก์ชั่นจะทำงานเฉพาะเมื่อผู้เยี่ยมชมมาจาก CN
, รหัสประเทศของจีน.
$ .getJSON ('http://api.wipmania.com/jsonp?callback=?', ฟังก์ชัน (ข้อมูล) ถ้า (data.address.country_code == 'CN') replaceGoogleCDN (););
พวกเราทุกคนพร้อมแล้ว ตอนนี้ผู้เข้าชมจากประเทศจีนจะได้รับแบบอักษรผ่านทาง //fonts.useso.com/
ซึ่งไม่ได้ถูกบล็อกโดยรัฐบาลจีน.