การโหลดไฟล์ JS ด้วยตัวเองรองรับหลายไฟล์ไม่เข้ากันกับ IE
การคัดลอกรหัสมีดังนี้:
-
* กำลังโหลดไฟล์ JS
* @param {String || Array} เส้นทาง url js
* @param {function} fn callback หลังจากโหลด
* @return {Object} Game Object
* @ตัวอย่าง
* getScript ("url.js", fn)
* getScript (["url-1.js", "url-2.js"], fn)
-
game.getScript = (function () {
var cache = {}; // url ถูกแคชภายในและไม่จำเป็นต้องมีการร้องขอในครั้งต่อไป
ฟังก์ชั่น return (url, fn) {
if ("string" === typeof (url)) {
url = [url]; // ถ้าไม่ใช่อาร์เรย์ให้นำชุด
-
var i = 0, // เปลี่ยน
ตกลง = 0, // มีการโหลด js กี่ครั้งสำเร็จ
len = url.length, // ทั้งหมดมี js ทั้งหมด
head = document.getElementsByTagname ("head") [0],
js, _url,
create = function (url) {// สร้าง js
js = document.createElement ("สคริปต์");
js.type = "ข้อความ/javascript";
js.src = url;
head.appendchild (JS);
กลับ JS;
-
สำหรับ (; i <len;) {
if (cache [encodeuricomponent ((_ url = url [i ++])))) {// ถ้าโหลด
(++ ok> = len && fn) && fn (); // ถ้า js ทั้งหมดถูกโหลด
ดำเนินการต่อ;
-
แคช [encodeuricomponent (_url)] =! 0; // ตั้งค่าแคช
js = สร้าง (_url); // สร้าง js
fn && (js.onload = function () {
if (++ ok> = len) {// ถ้า js ทั้งหมดถูกโหลดให้เรียกใช้การโทรกลับ
fn ();
-
-
-
head = js = _url = create = null;
คืนสิ่งนี้;
-
-