我熟悉 的典型用法onload
,如下所示:
<body onload="alert('Hello, World!');">
...
</body>
触发加载事件的所有 html 元素是什么?(因此执行在 onload 属性中提供的 javascript)
例如,img
一个这样的标签将在加载onload
时执行属性中提供的 javascript some.png
:
<img onload="someImgLoaded()" src="some.png" />
我熟悉 的典型用法onload
,如下所示:
<body onload="alert('Hello, World!');">
...
</body>
触发加载事件的所有 html 元素是什么?(因此执行在 onload 属性中提供的 javascript)
例如,img
一个这样的标签将在加载onload
时执行属性中提供的 javascript some.png
:
<img onload="someImgLoaded()" src="some.png" />
以下 HTML 标签支持“onload”:
<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 元素将导致请求并在该请求成功或失败时触发load
或error
事件。所以,基本上,任何带有src
或href
属性的元素,除了这些标签:
a
# What else? Not sure off hand..
并包括body
标签,因为讽刺的是它没有src
ORhref
属性。
下面是一些用于发现这些元素的粗略 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 属性的标签,但并非总是如此。
其他可能导致网络故障的事情:
onload
和onerror
属性可用于跟踪您的用户是否具有活动的互联网连接,这是我试图通过我的库 check-online.js 解决的问题:http ://github.com/devinrhode2/check-在线的
有一些明显的测试要做,看看是否
onload
是一个事件特定于body
,frame
,iframe
,img
,link
,和script
元件。基本上任何代表要加载的资源的东西。对于body
,这是有问题的文档。对于其他人来说,每一个都是相当明显的。
许多元素都有 onload 事件。你可以在这里找到它们
但是如果你想测试 DOM 的加载,那么最好使用window.onload。还建议您将 javascript 代码与 HTML 标记分开。
根据这个页面,你可以用onload
用:<body>
,<frame>
,<frameset>
,<iframe>
,<img>
,<link>
,和<script>
。