سؤال

لدي معرض قمت بترميزه بسرعة لموقع صغير، ويعمل بشكل جيد ضمن Firefox 3 وSafari 3.ولكن عندما قمت باختبار صديقي القديم IE7، يبدو أنه لا يتم تشغيل imageVar.onload = function() { // code here }..الذي أريد استخدامه لإيقاف تأثير التحميل وتحميل الصورة.

يرجى أن تضع في الاعتبار...

  • أعلم أن الصور المصغرة هي مجرد نسخة مصغرة من الصور الأكبر حجمًا.عندما يتم الانتهاء من الصور من قبل العميل، سأقوم بإنشاء صور مصغرة مناسبة.
  • هذه هي محاولتي الأولى لمحاولة الخروج من جافا سكريبت الإجرائية في معظم الأحيان.لذا يرجى التصرف بسهولة وإخباري بالأماكن التي يفشل فيها الكود الخاص بي!
هل كانت مفيدة؟

المحلول

للاستخدام الناجح لـ Image.onload، يجب عليك تسجيل طريقة معالج الأحداث قبل تعيين سمة src.

المعلومات ذات الصلة في هذا السؤال:

رد اتصال جافا سكريبت لتحميل الصور

نصائح أخرى

دعم الأحداث عبر المتصفحات ليس بهذه السهولة نظرًا لاختلافات التنفيذ.نظرًا لأنك تستخدم jQuery في موقعك، فمن الأفضل أن تستخدم توابع الأحداث الخاصة به لتطبيع دعم المتصفح:

بدلاً من:

 window.load = function(){ 
      //actions to be performed on window load
 }

 imageViewer.image.onload = function(){ 
     //actions to be performed on image load
 }

يفعل:

$(window).load(function(){ 
    //actions to be performed on window load
});

 $(imageViewer.image).load(function(){ 
      //actions to be performed on image load
 });

فقط للإضافة إلى اقتراح Eran لاستخدام معالجات الأحداث المضمنة في jQuery، يمكنك تشغيل التعليمات البرمجية عند تحميل المستند وإنشاء DOM ولكن قبل تنزيل الصور باستخدام:

$(document).ready(function(){
   //your code
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top