HTMLImageElement:complete 属性
只读的 HTMLImageElement
接口的 complete
属性是一个布尔值,指示图像是否已完全加载。
值
示例
考虑一个照片库应用程序,它提供将图像打开到灯箱模式以进行改进的查看以及图像编辑的功能。这些照片可能非常大,因此您不希望等待它们加载,因此您的代码使用 async
/await
在后台加载图像。
但是想象一下,您还有其他代码仅在图像加载完成后才需要运行,例如在灯箱中对图像执行红眼去除的命令。虽然理想情况下,如果图像未完全加载,则根本不会执行此命令,但为了提高可靠性,您需要检查以确保情况确实如此。
因此,fixRedEyeCommand()
函数(由触发红眼去除的按钮调用)在尝试执行其工作之前检查灯箱图像的 complete
属性的值。这在下面的代码中演示。
js
let lightboxElem = document.querySelector("#lightbox");
let lightboxImgElem = lightboxElem.querySelector("img");
let lightboxControlsElem = lightboxElem.querySelector(".toolbar");
async function loadImage(url, elem) {
return new Promise((resolve, reject) => {
elem.onload = () => resolve(elem);
elem.onerror = reject;
elem.src = url;
});
}
async function lightBox(url) {
lightboxElem.style.display = "block";
await loadImage("https://somesite.net/huge-image.jpg", lightboxImgElem);
lightboxControlsElem.disabled = false;
}
// …
function fixRedEyeCommand() {
if (lightboxElem.style.display === "block" && lightboxImgElem.complete) {
fixRedEye(lightboxImgElem);
} else {
/* can't start doing this until the image is fully loaded */
}
}
规范
规范 |
---|
HTML 标准 # dom-img-complete-dev |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。