Чтобы определить, загружено ли свойство «src», вы можете использовать несколько методов в зависимости от используемого вами языка программирования или платформы. Вот несколько примеров:
-
JavaScript:
var image = document.getElementById("myImage"); if (image.complete) { console.log("Image has been loaded"); } else { image.addEventListener("load", function() { console.log("Image has been loaded"); }); }
В этом примере мы проверяем свойство
complete
элемента изображения. Если этоtrue
, это означает, что изображение уже загружено. В противном случае мы добавляем прослушиватель событий «загрузка», который срабатывает после завершения загрузки изображения. -
jQuery:
var image = $("#myImage"); if (image[0].complete) { console.log("Image has been loaded"); } else { image.on("load", function() { console.log("Image has been loaded"); }); }
Этот пример похож на предыдущий, но использует jQuery. Мы выбираем элемент изображения с помощью селектора
$("#myImage")
, а затем получаем доступ к собственному элементу DOM с помощью[0]
. Мы проверяем свойствоcomplete
и подключаем обработчик события «load», если изображение еще не загружено. -
Угловой (TypeScript):
import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core'; @Component({ selector: 'app-image', template: '<img #myImage src="path/to/image.jpg">' }) export class ImageComponent implements AfterViewInit { @ViewChild('myImage') image: ElementRef; ngAfterViewInit() { if (this.image.nativeElement.complete) { console.log("Image has been loaded"); } else { this.image.nativeElement.addEventListener("load", () => { console.log("Image has been loaded"); }); } } }
В этом примере Angular мы используем декоратор
ViewChild
, чтобы получить ссылку на элемент изображения. После инициализации представления (ngAfterViewInit
) мы проверяем свойствоcomplete
и при необходимости добавляем прослушиватель событий «load».