Join the AMA (Ask Me Anything) with the Firefox leadership team to celebrate Firefox 20th anniversary and discuss Firefox’s future on Mozilla Connect. Mark your calendar on Thursday, November 14, 18:00 - 20:00 UTC!

לאתר זה תהיה פונקציונליות מוגבלת בזמן שאנו מתחזקים אותו לשיפור החוויה שלך. אם מאמר מסויים לא פותר את הבעיה שלך וברצונך לשאול שאלה, קהילת התמיכה שלנו מחכה לעזור לך ב־Twitter תחת ‎@FirefoxSupport וב־Reddit תחת ‎/r/firefox.

חיפוש בתמיכה

יש להימנע מהונאות תמיכה. לעולם לא נבקש ממך להתקשר או לשלוח הודעת טקסט למספר טלפון או לשתף מידע אישי. נא לדווח על כל פעילות חשודה באמצעות באפשרות ״דיווח על שימוש לרעה״.

מידע נוסף

After accessing Image.complete, Image.onload does not fire.

  • 3 תגובות
  • 3 have this problem
  • 9 views
  • תגובה אחרונה מאת knorretje

more options

JavaScript code that works under IE-9 and Chrome-16, but not under Firefox-9.0.1:

var slides = []; slides[0] = new Image(); slides[0].src = fileNames[0];

var tmp = slides[0].complete;

  slides[0].onerror = function(){
                         alert("While downloading\n"+
                                "           " +fileNames[0]+
                                "\nerror occurred. Execution stops");
                         throw new Error("Network problem");
                      };
  alert("X " + tmp);
  alert("Y ");
  slides[0].onload  = function(){
                        alert(this.complete);
                         if (winStarted) winStart()
                         else window.onload = winStart;
                     };

The alerts "X" and "Y" give output, but the onload branch is not taken. Onload branch is taken under IE-9 and Chrome 16.0.912.63.

JavaScript code that works under IE-9 and Chrome-16, but not under Firefox-9.0.1: var slides = []; slides[0] = new Image(); slides[0].src = fileNames[0]; var tmp = slides[0].complete; slides[0].onerror = function(){ alert("While downloading\n"+ " " +fileNames[0]+ "\nerror occurred. Execution stops"); throw new Error("Network problem"); }; alert("X " + tmp); alert("Y "); slides[0].onload = function(){ alert(this.complete); if (winStarted) winStart() else window.onload = winStart; }; The alerts "X" and "Y" give output, but the onload branch is not taken. Onload branch is taken under IE-9 and Chrome 16.0.912.63.

השתנתה ב־ על־ידי Paul.Wormer

כל התגובות (3)

more options

Could you create a working testcase on http://jsfiddle.net/ (save and post the link here), please.

more options

http://jsfiddle.net/paulwormer/wXN9p/

This fiddle alerts: FF-9 "Complete branch; Chrome-16 "Complete branch" + "Onload branch" ; IE-9 "Onload branch".

more options

There seems to be an onload for XUL images, but I can not find it for html images.
https://developer.mozilla.org/en/DOM/HTMLImageElement
https://developer.mozilla.org/en/DOM/element
https://developer.mozilla.org/en/XUL/image
Maybe you can use element.addEventListener instead. Something like:
s.myonload = function ....
s.addEventListener("load",s.myonload,false);
s.src = ...

https://developer.mozilla.org/en/DOM/element.addEventListener