Какие html-теги поддерживают атрибуты событий onload / onerror javascript?
Я знаком с типичным использованием onload, как в следующем:
<body onload="alert('Hello, World!');">
...
</body>
Каковы все html-элементы, которые запускают событие load? (таким образом, выполняется 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является ли событие специфичным дляbody,frame,iframe,img,link, иscriptэлементы. В основном все, что представляет собой загружаемый ресурс. Дляbodyэто и есть рассматриваемый документ. Для остальных каждый из них достаточно очевиден.
Согласно этой странице , вы можете использовать
onloadс:<body>,<frame>,<frameset>,<iframe>,<img>,<link>, и<script>.