什么html标签支持onload/onerror javascript事件属性?

Bil*_*ard 21 html javascript html5 onload onerror

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

<body onload="alert('Hello, World!');">
...
</body>
Run Code Online (Sandbox Code Playgroud)

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

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

<img onload="someImgLoaded()" src="some.png" />
Run Code Online (Sandbox Code Playgroud)

Bri*_*ndy 16

以下HTML标记支持'onload':

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

以及以下Javascript对象:

image, layer, window

  • 没有冒犯或任何事情,但我必须-1.你的惊人声誉有助于其他人将你的答案视为"经文",并将其留在那里(包括我,如果我对这个特定的答案我不知道更好).由于还有许多其他因素需要考虑(其中大部分都是由Christoph所述),因此这可能是有害的,原因与w3schools相同.我认为这个问题本来应该更彻底,或者至少要更新以反映当前的标准.如果你编辑它,请给我发表评论,这样我就可以取消选择它. (3认同)

Dev*_*ode 6

下面是一个更全面的元素列表,它在请求的资源完成下载时触发​​加载事件:

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?
Run Code Online (Sandbox Code Playgroud)

对于最大的覆盖范围,最好考虑引用URL的所有html元素将导致请求并在该请求成功或失败时触发loaderror事件.所以,基本上,任何带有srcor href属性的元素,除了这些标记:

a
# What else? Not sure off hand..
Run Code Online (Sandbox Code Playgroud)

并包括body标签,因为它具有讽刺意味的是没有srcOR 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:');
Run Code Online (Sandbox Code Playgroud)

此外,使用"使用src或href的所有内容"方法,您可以忽略通常具有src或href属性的不相关或其他标记,但并非总是如此.

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

onloadonerror属性可以用来跟踪你的用户是否有一个活跃的互联网连接,这是我试图用我的库check-online.js解决的问题:http://github.com/devinrhode2/check- 线上

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