The spec states:

The IDL attribute `complete` must return true if […]The final task that is queued by the networking task source once the resource has been fetched has been queued, but has not yet been run, and the img element is not in the broken state.
The img element is completely available.

http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-content-1.html#dom-img-complete

If I understand correctly the spec calls for Image.complete to be false when the image is broken — and this doesn't match implementations. At least Firefox, Chrome and Safari set image.complete == true when the image is broken. Test case:

<img src="data:image/gif,broken" onerror="alert(this.complete)">

Having complete == true set on broken images is actually useful: it allows distinguishing between images that haven't been loaded yet and images that have been loaded and failed to decode (.complete == true && .naturalWidth == 0).

--
regards, Kornel

Reply via email to