HTMLImageElement
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
The HTMLImageElement interface represents an HTML <img> element, providing the properties and methods used to manipulate image elements.
Constructor
Image()-
The
Image()constructor creates and returns a newHTMLImageElementobject representing an HTML<img>element which is not attached to any DOM tree. It accepts optional width and height parameters. When called without parameters,new Image()is equivalent to callingdocument.createElement('img').
Instance properties
Inherits properties from its parent, HTMLElement.
HTMLImageElement.alt-
A string that reflects the
altHTML attribute, thus indicating the alternate fallback content to be displayed if the image has not been loaded. HTMLImageElement.attributionSrcSecure context Experimental-
Gets and sets the
attributionsrcattribute on an<img>element programmatically, reflecting the value of that attribute.attributionsrcspecifies that you want the browser to send anAttribution-Reporting-Eligibleheader along with the image request. On the server-side this is used to trigger sending anAttribution-Reporting-Register-SourceorAttribution-Reporting-Register-Triggerheader in the response, to register an image-based attribution source or attribution trigger, respectively. HTMLImageElement.completeRead only-
Returns a boolean value that is
trueif the browser has finished fetching the image, whether successful or not. That means this value is alsotrueif the image has nosrcvalue indicating an image to load. HTMLImageElement.crossOrigin-
A string specifying the CORS setting for this image element. See CORS settings attributes for further details. This may be
nullif CORS is not used. HTMLImageElement.currentSrcRead only-
Returns a string representing the URL from which the currently displayed image was loaded. This may change as the image is adjusted due to changing conditions, as directed by any media queries which are in place.
HTMLImageElement.decoding-
An optional string representing a hint given to the browser on how it should decode the image. If this value is provided, it must be one of the possible permitted values:
syncto decode the image synchronously,asyncto decode it asynchronously, orautoto indicate no preference (which is the default). Read thedecodingpage for details on the implications of this property's values. HTMLImageElement.fetchPriority-
An optional string representing a hint given to the browser on how it should prioritize fetching of the image relative to other images. If this value is provided, it must be one of the possible permitted values:
highto fetch at a high priority,lowto fetch at a low priority, orautoto indicate no preference (which is the default). HTMLImageElement.height-
An integer value that reflects the
heightHTML attribute, indicating the rendered height of the image in CSS pixels. HTMLImageElement.isMap-
A boolean value that reflects the
ismapHTML attribute, indicating that the image is part of a server-side image map. This is different from a client-side image map, specified using an<img>element and a corresponding<map>which contains<area>elements indicating the clickable areas in the image. The image must be contained within an<a>element; see theismappage for details. HTMLImageElement.loading-
A string providing a hint to the browser used to optimize loading the document by determining whether to load the image immediately (
eager) or on an as-needed basis (lazy). HTMLImageElement.naturalHeightRead only-
Returns an integer value representing the intrinsic height of the image in CSS pixels, if it is available; else, it shows
0. This is the height the image would be if it were rendered at its natural full size. HTMLImageElement.naturalWidthRead only-
An integer value representing the intrinsic width of the image in CSS pixels, if it is available; otherwise, it will show
0. This is the width the image would be if it were rendered at its natural full size. HTMLImageElement.referrerPolicy-
A string that reflects the
referrerpolicyHTML attribute, which tells the user agent how to decide which referrer to use in order to fetch the image. Read this article for details on the possible values of this string. HTMLImageElement.sizes-
A string reflecting the
sizesHTML attribute. This string specifies a list of comma-separated conditional sizes for the image; that is, for a given viewport size, a particular image size is to be used. Read the documentation on thesizespage for details on the format of this string. HTMLImageElement.src-
A string that reflects the
srcHTML attribute, which contains the full URL of the image including base URI. You can load a different image into the element by changing the URL in thesrcattribute. HTMLImageElement.srcset-
A string reflecting the
srcsetHTML attribute. This specifies a list of candidate images, separated by commas (',', U+002C COMMA). Each candidate image is a URL followed by a space, followed by a specially-formatted string indicating the size of the image. The size may be specified either the width or a size multiple. Read thesrcsetpage for specifics on the format of the size substring. HTMLImageElement.useMap-
A string reflecting the
usemapHTML attribute, containing the page-local URL of the<map>element describing the image map to use. The page-local URL is a pound (hash) symbol (#) followed by the ID of the<map>element, such as#my-map-element. The<map>in turn contains<area>elements indicating the clickable areas in the image. HTMLImageElement.width-
An integer value that reflects the
widthHTML attribute, indicating the rendered width of the image in CSS pixels. HTMLImageElement.xRead only-
An integer indicating the horizontal offset of the left border edge of the image's CSS layout box relative to the origin of the
<html>element's containing block. HTMLImageElement.yRead only-
The integer vertical offset of the top border edge of the image's CSS layout box relative to the origin of the
<html>element's containing block.
Obsolete properties
HTMLImageElement.alignDeprecated-
A string indicating the alignment of the image with respect to the surrounding context. The possible values are
"left","right","justify", and"center". This is obsolete; you should instead use CSS (such astext-align, which works with images despite its name) to specify the alignment. HTMLImageElement.borderDeprecated-
A string which defines the width of the border surrounding the image. This is deprecated; use the CSS
borderproperty instead. HTMLImageElement.hspaceDeprecated-
An integer value which specifies the amount of space (in pixels) to leave empty on the left and right sides of the image.
HTMLImageElement.longDescDeprecated-
A string specifying the URL at which a long description of the image's contents may be found. This is used to turn the image into a hyperlink automatically. Modern HTML should instead place an
<img>inside an<a>element defining the hyperlink. HTMLImageElement.nameDeprecated-
A string representing the name of the element.
HTMLImageElement.vspaceDeprecated-
An integer value specifying the amount of empty space, in pixels, to leave above and below the image.
Instance methods
Inherits methods from its parent, HTMLElement.
HTMLImageElement.decode()-
Returns a
Promisethat resolves when the image is decoded and it's safe to append the image to the DOM. This prevents rendering of the next frame from having to pause to decode the image, as would happen if an undecoded image were added to the DOM.
Errors
If an error occurs while trying to load or render the image, and an onerror event handler has been configured to handle the error event, that event handler will get called. This can happen in a number of situations, including:
- The
srcattribute is empty ornull. - The specified
srcURL is the same as the URL of the page the user is currently on. - The specified image is corrupted in some way that prevents it from being loaded.
- The specified image's metadata is corrupted in such a way that it's impossible to retrieve its dimensions, and no dimensions were specified in the
<img>element's attributes. - The specified image is in a format not supported by the user agent.
Examples
>Creating and inserting an image element
const img1 = new Image(); // Image constructor
img1.src = "image1.png";
img1.alt = "alt";
document.body.appendChild(img1);
const 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);
Getting width and height
The following example shows the use of the height and width properties alongside images of varying dimensions:
<p>
Image 1: no height, width, or style
<img id="image1" src="https://www.mozilla.org/images/mozilla-banner.gif" />
</p>
<p>
Image 2: height="50", width="500", but no style
<img
id="image2"
src="https://www.mozilla.org/images/mozilla-banner.gif"
height="50"
width="500" />
</p>
<p>
Image 3: no height, width, but style="height: 50px; width: 500px;"
<img
id="image3"
src="https://www.mozilla.org/images/mozilla-banner.gif"
style="height: 50px; width: 500px;" />
</p>
<div id="output"></div>
const arrImages = [
document.getElementById("image1"),
document.getElementById("image2"),
document.getElementById("image3"),
];
const objOutput = document.getElementById("output");
let strHtml = "<ul>";
for (let i = 0; i < arrImages.length; i++) {
const img = arrImages[i];
strHtml += `<li>image${i + 1}: height=${img.height}, width=${img.width}, style.height=${img.style.height}, style.width=${img.style.width}</li>`;
}
strHtml += "</ul>";
objOutput.innerHTML = strHtml;
Specifications
| Specification |
|---|
| HTML> # htmlimageelement> |
Browser compatibility
Loading...
See also
- The HTML element implementing this interface:
<img>