การโหลดไฟล์ของเบราว์เซอร์นั้นมีปัญหาความเข้ากันได้อย่างมาก เมื่อเร็ว ๆ นี้ฉันเห็น @lifesinger ให้สรุปเฉพาะ สิ่งที่ลำบากกว่านี้คือ IE6 ~ 8 ไม่แยกความแตกต่างระหว่างการโหลดที่ประสบความสำเร็จหรือล้มเหลว ฉันเห็นโซลูชันออนไลน์ซึ่งคือการวางตัวแปรทั่วโลกในตอนท้ายของไฟล์โหลดหรือเปลี่ยนคุณลักษณะของฉลากเพื่อแยกความแตกต่างเพื่อความสำเร็จหรือไม่ถูกตัดสินโดยบิตธงนี้ แต่เห็นได้ชัดว่ามันไม่สมบูรณ์แบบและต้องโหลดไฟล์
ต่อมาฉันลองใช้ความคิดอื่นก่อนสร้าง VBScript ตั้งค่า SRC เป็นไฟล์ JS หากไฟล์โหลดตามปกติจะมีการรายงานข้อผิดพลาดอย่างแน่นอนมิฉะนั้นจะไม่มีการตอบสนอง ด้วยวิธีนี้หาก window.onerror จับข้อผิดพลาดนั่นหมายความว่าไฟล์นั้นถูกต้องและจะโหลดตามปกติ หากไม่ถูกจับการหมดเวลาจะถูกเรียกใช้ในไม่กี่วินาที
ส่วนนี้ของรหัส:
การคัดลอกรหัสมีดังนี้:
ถ้า (เช่น && เช่น <9) {
vbs = doc.createElement (/'script/');
vbs.language = /'vbscript /';
vbs.src = ไฟล์;
saveerRorHandle = win.onerror;
win.onerror = function () {
โหลด ();
win.onerror = saveerRorHandle;
กลับมาจริง;
-
settimeout (function () {
Ref.ParentNode.InsertBefore (VBS, Ref);
}, 0);
} อื่น {
โหลด ();
-