Какие html-теги поддерживают атрибуты события javascript onload/onerror?
Я знаком с типичным использованием onload
, как в следующем:
<body onload="alert('Hello, World!');">
...
</body>
Каковы все элементы HTML, которые запускают событие загрузки? (таким образом, выполняется JavaScript, предоставленный в атрибуте onload)
Например, img
является одним из таких тегов, который будет выполнять JavaScript, предоставленный в onload
атрибут, когда 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
или же href
атрибут, за исключением этих тегов:
a
# What else? Not sure off hand..
И в том числе body
тег, потому что он по иронии судьбы не имеет src
ИЛИ ЖЕ href
приписывать.
Ниже приведен грубый 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, но не всегда.
Другие вещи, которые могут иметь сбои в сети:
- Кэш приложения
- XMLHttpRequest
- WebSocket
- PeerConnection (WebRTC)
- От: http://docs.webplatform.org/w/index.php?search=onerror&fulltext=+&title=Special%3ASearch
onload
а также onerror
Атрибуты могут быть полезны для отслеживания того, есть ли у вашего пользователя активное подключение к Интернету, и я пытаюсь решить это с помощью моей библиотеки check-online.js: http://github.com/devinrhode2/check-online
Существует некоторое очевидное тестирование, чтобы увидеть, стоит ли
Многие элементы имеют событие onload. Вы можете найти их здесь
Но если вы хотите проверить загрузку DOM, то лучше всего использовать window.onload. Также рекомендуется отделить код JavaScript от разметки HTML.
onload
это событие, специфичное для body
, frame
, iframe
, img
, link
, а также script
элементы. В основном все, что представляет ресурс для загрузки. За body
Это документ, о котором идет речь. Для остальных каждый довольно очевиден.
Согласно этой странице вы можете использовать onload
с: <body>
, <frame>
, <frameset>
, <iframe>
, <img>
, <link>
, а также <script>
,