哪些html标签支持onload / onerror javascript事件属性?

我熟悉onload的典型用法,如下所示:

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

什么是引发加载事件的所有html元素? (从而执行onload属性提供的JavaScript)

例如, img是一个这样的标签,当some.png加载时,它将执行onload属性中提供的javascript:

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

'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? 

对于最广泛的覆盖范围,最好考虑引用url的所有html元素都会导致请求,并在请求成功或失败时触发loaderror事件。 所以,基本上,任何具有srchref属性的元素,除了这些标签:

 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属性的标签,但并非总是如此。

其他可能导致networking故障的事情:

  • 应用程序caching
  • XMLHttpRequest的
  • 的WebSocket
  • PeerConnection(WebRTC)
  • 来自: http : //docs.webplatform.org/w/index.php?search=onerror&fulltext=+&title=Special%3ASearch

onloadonerror属性可以有助于跟踪你的用户是否有一个活跃的互联网连接,这是我试图解决我的图书馆check-online.js: http ://github.com/devinrhode2/ 入住在线

有一些明显的testing要做,看是否

onload是特定于bodyframeiframeimglinkscript元素的事件。 基本上任何代表一个资源被加载。 对于body ,这是有问题的文件。 对于其他人来说,每一个都相当明显。

许多元素都有onload事件。 你可以在这里find它们

但是如果你想testingDOM的加载,那么最好使用window.onload 。 还build议您将HTML代码与HTML代码分开。

根据这个页面 ,你可以使用onload<body><frame><frameset><iframe><img><link><script>