Baseline Widely available
Das schreibgeschützte Attribut complete
der Schnittstelle HTMLImageElement
ist ein Boolean-Wert, der anzeigt, ob das Bild vollständig geladen ist oder nicht.
Ein Boolean-Wert, der true
ist, wenn das Bild vollständig geladen wurde; andernfalls ist der Wert false
.
Ein Bild gilt als vollständig geladen, wenn eine der folgenden Bedingungen zutrifft:
src
noch das srcset
-Attribut ist angegeben.srcset
-Attribut fehlt und das src
-Attribut, obwohl angegeben, ist der leere String (""
).Es ist erwähnenswert, dass sich der Wert von complete
ändern kann, während Ihr Skript ausgeführt wird, da das Bild möglicherweise asynchron empfangen wird.
Betrachten Sie eine Fotobibliotheks-App, die die Möglichkeit bietet, Bilder in einem Lightbox-Modus für eine verbesserte Ansicht sowie zur Bearbeitung des Bildes zu öffnen. Diese Fotos können sehr groà sein, sodass Sie nicht warten möchten, bis sie geladen sind. Daher verwendet Ihr Code async
/await
, um die Bilder im Hintergrund zu laden.
Aber stellen Sie sich vor, Sie haben anderen Code, der nur ausgeführt werden muss, wenn das Bild vollständig geladen ist, wie ein Befehl, der eine Rote-Augen-Entfernung auf dem Bild in der Lightbox durchführt. Idealerweise sollte dieser Befehl nicht einmal ausgeführt werden, wenn das Bild nicht vollständig geladen ist. Für eine verbesserte Zuverlässigkeit möchten Sie jedoch sicherstellen, dass dies der Fall ist.
Die Funktion fixRedEyeCommand()
, die durch die Schaltfläche aufgerufen wird, die die Rote-Augen-Entfernung auslöst, überprüft den Wert der complete
-Eigenschaft des Lightbox-Bildes, bevor sie ihre Arbeit ausführt. Dies wird im untenstehenden Code demonstriert.
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://some-site.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 */
}
}
Spezifikationen Browser-Kompatibilität
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4