Какие теги html поддерживают атрибуты событий onload / onerror javascript?

Я знаком с типичным использованием onload следующим образом:

<body onload="alert('Hello, World!');">
...
</body>

каковы все элементы html, которые запускают событие загрузки? (таким образом, выполнение javascript поставляется в атрибуте onload)

например, img является одним из таких тегов, который будет выполнять javascript, поставляемый в , когда some.png загружено:

<img onload="someImgLoaded()" src="some.png" />

5 ответов


'onload' поддерживается следующими тегами HTML:

<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>

и следующие объекты Javascript:

image, layer, window


ниже приведен гораздо более полный список элементов, которые запускают событие загрузки, когда запрашиваемый ресурс завершает загрузку:

body # (just fires a load event, doesn't make requests itself)
img
image
link
iframe
frameset
frame
script
embed
object
video ?
  source
  track
audio ?
  source
svg
<input type="image" src="submit.gif" alt="Submit">
<object width="400" height="400" data="helloworld.swf"></object>
<map name="planetmap">
  <area shape="rect" coords="0,0,82,126" href="sun.htm" alt="Sun">
webgl?

для большинства покрытий лучше всего учитывать, что все html-элементы, ссылающиеся на url-адрес, приведут к запросу и запуску load или error событие, когда этот запрос для успеха или неудачи. Итак, в основном, любой элемент с src или , за исключением этих тегов:

a
# What else? Not sure off hand..

и в том числе body тег, потому что он как ни странно не было!--5--> или .

ниже приведен примерный javascript для обнаружения этих элементов:

var tagsToIgnore = ['a'];

['src', 'href'].forEach(function(attr) {
  console.log('====' + attr + '====');
  [].slice.call(document.querySelectorAll('*[' + attr + ']')).forEach(function(el){
    if (!~tagsToIgnore.indexOf(el.tagName.toLowerCase())) {
      console.log(el.tagName);
    }
  });
});
console.log('body # :trollface:');

кроме того, с помощью метода" все с src или href " вы игнорируете нерелевантные или другие теги, которые обычно имеют атрибут src или href, но не всегда.

другие вещи, которые могут иметь сбои в сети:

onload и onerror атрибуты могут быть полезны для отслеживания того, имеет ли ваш пользователь активное подключение к интернету, что я пытаюсь решить с помощью проверки библиотеки онлайн.Яш: http://github.com/devinrhode2/check-online

есть некоторые очевидные испытаний, чтобы увидеть, является ли или нет


onload - Это конкретные события body, frame, iframe, img, link и script элементы. В основном все, что представляет собой ресурс для загрузки. Для body, это документ, о котором идет речь. Для остальных это очевидно.


многие элементы имеют событие onload. Вы можете найти их здесь

но если вы хотите проверить загрузку DOM, то лучше всего использовать


по данным на этой странице, вы можете использовать onload с: <body>, <frame>, <frameset>, <iframe>, <img>, <link> и <script>.