--- title: HTMLImageElement slug: Web/API/HTMLImageElement tags: - API - HTML DOM - HTMLImageElement - Interface - NeedsTranslation - Reference - TopicStub - img translation_of: Web/API/HTMLImageElement ---
The HTMLImageElement
interface provides special properties and methods for manipulating the layout and presentation of {{HTMLElement("img")}} elements.
{{InheritanceDiagram(600,120)}}
Inherits properties from its parent, {{domxref("HTMLElement")}}.
"left"
, "right"
, "justify"
, and "center"
.true
if the browser has finished fetching the image, whether successful or not. It also shows true, if the image has no {{domxref("HTMLImageElement.src", "src")}} value.unsigned long
that reflects the {{htmlattrxref("height", "img")}} HTML attribute, indicating the rendered height of the image in CSS pixels.long
representing the space on either side of the image.unsigned long
representing the intrinsic height of the image in CSS pixels, if it is available; else, it shows 0
.unsigned long
representing the intrinsic width of the image in CSS pixels, if it is available; otherwise, it will show 0
.',', U+002C COMMA
). A candidate image is a URL followed by a 'w'
with the width of the images, or an 'x'
followed by the pixel density.long
representing the space above and below the image.unsigned long
that reflects the {{htmlattrxref("width", "img")}} HTML attribute, indicating the rendered width of the image in CSS pixels.long
representing the horizontal offset from the nearest layer. This property mimics an old Netscape 4 behavior.long
representing the vertical offset from the nearest layer. This property is also similar to behavior of an old Netscape 4.Inherits properties from its parent, {{domxref("HTMLElement")}}.
Image()
constructor, taking two optional unsigned
long
, which are the width and the height of the resource, creates an instance of HTMLImageElement
, not inserted in a DOM tree.If an error occurs while trying to load or render the image, and an {{htmlattrxref("onerror")}} event handler has been configured to handle the {{event("error")}} event, that event handler will get called. This can happen in a number of situations, including:
null
.src
URL is the same as the URL of the page the user is currently on.<img>
element's attributes.var img1 = new Image(); // HTML5 Constructor img1.src = 'image1.png'; img1.alt = 'alt'; document.body.appendChild(img1); var img2 = document.createElement('img'); // use DOM HTMLImageElement img2.src = 'image2.jpg'; img2.alt = 'alt text'; document.body.appendChild(img2); // using first image in the document alert(document.images[0].src);
Specification | Status | Comment |
---|---|---|
{{SpecName('Referrer Policy', '#referrer-policy-delivery-referrer-attribute', 'referrer attribute')}} | {{Spec2('Referrer Policy')}} | Added the referrerPolicy property. |
{{SpecName("CSSOM View", "#excensions-to-the-htmlimageelement-interface", "Extensions to HTMLImageElement")}} | {{Spec2('CSSOM View')}} | Added the x and y properties. |
{{SpecName('HTML WHATWG', "embedded-content.html#the-img-element", "HTMLImageElement")}} | {{Spec2('HTML WHATWG')}} | The following properties have been added: srcset , currentSrc and sizes . |
{{SpecName('HTML5 W3C', "embedded-content-0.html#the-img-element", "HTMLImageElement")}} | {{Spec2('HTML5 W3C')}} | A constructor (with 2 optional parameters) has been added. The following properties are now obsolete: name , border , align , hspace , vspace , and longdesc .The following properties are now unsigned long , instead of long : height , and width .The following properties have been added: crossorigin , naturalWidth , naturalHeight , and complete . |
{{SpecName('DOM2 HTML', 'html.html#ID-17701901', 'HTMLImgElement')}} | {{Spec2('DOM2 HTML')}} | The lowSrc property has been removed.The following properties are now long , instead of DOMString : height , width , hspace , and vspace . |
{{SpecName('DOM1', 'level-one-html.html#ID-17701901', 'HTMLImgElement')}} | {{Spec2('DOM1')}} | Initial definition. |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop(1.0)}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
lowSrc |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
naturalWidth , naturalHeight |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | 9 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
crossorigin |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | 9 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
complete |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | 5[4] | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
srcset {{experimental_inline}} |
{{CompatChrome(34)}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop(32)}}[2] | {{CompatNo}} | 21 | {{CompatSafari(7.1)}} |
currentSrc {{experimental_inline}} |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop(32)}}[2] | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatNo}} |
sizes {{experimental_inline}} |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop(33)}}[3] | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatNo}} |
x and y |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | 14[1] | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
referrerPolicy {{experimental_inline}} |
{{CompatChrome(51)}} | {{CompatNo}} | {{CompatGeckoDesktop(50)}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
onerror event handler |
{{CompatNo}} | {{CompatUnknown}} | {{CompatGeckoDesktop(51)}}[5] | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android Webview | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile(1.0)}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
lowSrc |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
naturalWidth , naturalHeight |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | 9 | {{CompatUnknown}} | {{CompatVersionUnknown}} |
crossorigin |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} |
complete |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} |
srcset {{experimental_inline}} |
{{CompatChrome(34)}} | {{CompatChrome(34)}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile(32)}}[2] | {{CompatNo}} | {{CompatNo}} | iOS 8 |
currentSrc {{experimental_inline}} |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile(32)}}[2] | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
sizes {{experimental_inline}} |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile(33)}}[3] | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
x and y |
{{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | 14[1] | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
referrerPolicy {{experimental_inline}} |
{{CompatChrome(51)}} | {{CompatChrome(51)}} | {{CompatNo}} | {{CompatGeckoMobile(50)}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
onerror event handler |
{{CompatNo}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatGeckoMobile(51)}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
[1] Though, these x
and y
properties were removed in Gecko 7.0 {{geckoRelease("7.0")}} but later, they were restored in Gecko 14.0 {{geckoRelease("14.0")}} for compatibility reasons.
[2] This feature is behind the dom.image.srcset.enabled
preference, defaulting to false
.
[3] This feature is behind the dom.image.picture.enabled
preference, defaulting to false
.
[4] IE reports false
for broken images.
[5] May also be supported in earlier versions.