We're calling on all EU-based Mozillians with iOS or iPadOS devices to help us monitor Apple’s new browser choice screens. Join the effort to hold Big Tech to account!

This site will have limited functionality while we undergo maintenance to improve your experience. If an article doesn't solve your issue and you want to ask a question, we have our support community waiting to help you at @FirefoxSupport on Twitter and/r/firefox on Reddit.

Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Hierdie gesprek is in die argief. Vra asseblief 'n nuwe vraag as jy hulp nodig het.

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

  • 3 antwoorde
  • 3 hierdie probleem
  • 9 views
  • Laaste antwoord deur 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.

Gewysig op deur Paul.Wormer

All Replies (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