Tìm kiếm hỗ trợ

Tránh các lừa đảo về hỗ trợ. Chúng tôi sẽ không bao giờ yêu cầu bạn gọi hoặc nhắn tin đến số điện thoại hoặc chia sẻ thông tin cá nhân. Vui lòng báo cáo hoạt động đáng ngờ bằng cách sử dụng tùy chọn "Báo cáo lạm dụng".

Tìm hiểu thêm

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

  • 3 trả lời
  • 3 gặp vấn đề này
  • 9 lượt xem
  • Trả lời mới nhất được viết bởi 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.

Được chỉnh sửa bởi Paul.Wormer vào

Tất cả các câu trả lời (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