Что подразумевается под "onload = foo (event)"? - PullRequest
0 голосов
/ 08 июня 2019

Я новичок в JS и нашел этот раздел кода:

<body>
    <span id="sp1">
        <img src="aurora.gif" onload="ev1(event)">
    </span>        
</body>

Насколько я понял, атрибут onload запускается, если весь HTML-документ завершил "загрузку".
Но яне совсем понимаю, что передается функции ev1, если активирован атрибут onload.Что такое event в этом случае?

Здесь - исходный код

Ответы [ 3 ]

3 голосов
/ 08 июня 2019

Он подключает обработчик к событию load изображения и передает объект события для события в обработчик.Объект event надежно существует в кросс-браузерном контексте в контексте обработчика событий в стиле атрибута onload: в IE он глобальный;в Firefox это локальная функция в синтетической функции, созданная для обработчика onload;на Chrome я думаю, что это оба .: -)

Обратите внимание, что функция ev1 должна быть глобальной, что является одной из многих причин, по которой не следует использовать обработчики событий onxyz -attribute-style.

1 голос
/ 08 июня 2019

img также имеет атрибут onload и вызывается по окончании загрузки изображения.Точно так же он имеет onerror обработчик событий.event представляет объект события.

function ev1(e) {
  console.log(e)
  console.log('Img loaded')

}
img {
  width: 200px;
  height: 200px;
}
<img src='https://i.redd.it/xbq78cnv2nr21.jpg' onload='ev1(event)'>
0 голосов
/ 08 июня 2019

Это попытка передать объект Event в качестве аргумента функции с именем ev1.

Вместо использования встроенного события, автор Разработчик должен был использовать событие JavaScript, подобное этому.

document.querySelector("img").addEventListener("load", event => {
  console.log(event);
});

Удачи.

...