เป็นเรื่องปกติสำหรับการพัฒนาเว็บเพื่อให้ได้ความกว้างและความสูงของภาพ ภาพไม่สามารถรับความกว้างและความสูงของภาพก่อนโหลดได้ หลังจากการโหลดสามารถทำให้ภาพเสร็จสมบูรณ์สามารถรับความกว้างและความสูงของภาพได้ ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
var img = ภาพใหม่ ();
img.src = "loading.gif";
img.onload = function () {
การแจ้งเตือน (img.width);
-
ตกลง? รหัสนี้ดูเหมือนจะดี แต่จะมีข้อผิดพลาดใน IE นั่นคือไม่มีปัญหาเมื่อเปิดเป็นครั้งแรกและมันจะเป็นโศกนาฏกรรมเมื่อใช้วิธีนี้เป็นครั้งที่สอง IE ไม่มีการตอบสนองและมันจะเหมือนกันแม้ว่าหน้าจะรีเฟรช เนื่องจาก IE จะแคชอิมเมจภาพที่โหลดที่สองจึงไม่ได้อัปโหลดจากเซิร์ฟเวอร์ แต่โหลดจากบัฟเฟอร์
ก่อนอื่นเขียนวิธี ONLOAD จากนั้นระบุ URL ของภาพนี้ซึ่งเป็นเรื่องปกติ ดังนั้นจึงไม่ใช่ว่า IE ไม่ได้ทริกเกอร์เหตุการณ์ ONLOAD แต่เนื่องจากบัฟเฟอร์ถูกโหลดเร็วจนเหตุการณ์ ONLOAD ถูกยิงแล้วเมื่อ IMG.Onload ไม่ทำงาน ไม่เป็นไร
การคัดลอกรหัสมีดังนี้:
var img = ภาพใหม่ ();
img.onload = function () {
การแจ้งเตือน (img.width);
-
img.src = "loading.gif";