javascript - funcion - onload div
¿Qué etiquetas html admiten los atributos de evento onload/onerror javascript? (5)
''onload'' es compatible con las siguientes etiquetas HTML:
<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
Y los siguientes objetos Javascript:
image, layer, window
Estoy familiarizado con el uso típico de onload
, como en el siguiente:
<body onload="alert(''Hello, World!'');">
...
</body>
¿Cuáles son todos los elementos html que activan un evento de carga? (Ejecutando javascript proporcionado en un atributo onload)
Por ejemplo, img
es una de esas etiquetas que ejecutará el javascript proporcionado en un atributo onload
cuando se haya cargado some.png
:
<img onload="someImgLoaded()" src="some.png" />
A continuación hay una lista mucho más completa de elementos que activan un evento de carga cuando el recurso solicitado finaliza la descarga:
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?
Para obtener la mayor cobertura, es mejor considerar que todos los elementos html que hacen referencia a una url darán como resultado una solicitud y activarán un evento de load
o error
cuando la solicitud de la solicitud sea exitosa o falle. Entonces, básicamente, cualquier elemento con un atributo src
o href
, a excepción de estas etiquetas:
a
# What else? Not sure off hand..
E incluyendo la etiqueta del body
, porque irónicamente no tiene un atributo src
OR href
.
A continuación se encuentra un poco de javascript para descubrir estos elementos:
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:'');
Además, con el método "todo con src o href", ignoras las etiquetas irrelevantes u otras que generalmente tienen un atributo src o href, pero no siempre.
Otras cosas que pueden tener fallas en la red:
- Caché de aplicaciones
- XMLHttpRequest
- WebSocket
- PeerConnection (WebRTC)
- De: http://docs.webplatform.org/w/index.php?search=onerror&fulltext=+&title=Special%3ASearch
onload
atributos onload
y onerror
pueden ser útiles para mantener un registro de si su usuario tiene o no una conexión activa a Internet, lo cual es algo que intento abordar con mi biblioteca check-online.js: http://github.com/devinrhode2/check-online
Hay algunas pruebas obvias que se deben hacer para ver si
Muchos elementos tienen el evento de carga. Puedes encontrarlos here
Pero si quiere probar la carga del DOM, entonces es mejor usar window.onload . También se recomienda que separe el código javascript del marcado HTML.
Según esta página , puede utilizar onload
con: <body>
, <frame>
, <frameset>
, <iframe>
, <img>
, <link>
y <script>
.
onload
es un evento específico de los elementos body
, frame
, iframe
, img
, link
y script
. Básicamente cualquier cosa que represente un recurso para ser cargado. Para el body
, ese es el documento en cuestión. Para los demás, cada uno es bastante obvio.