[英]What html tags support the onload/onerror javascript event attributes?
我熟悉onload
的典型用法,如下所示:
<body onload="alert('Hello, World!');">
...
</body>
觸發加載事件的所有html元素是什么? (從而執行onload屬性中提供的javascript)
例如, img
是一個這樣的標記,當some.png
加載時,它將執行onload
屬性中提供的javascript:
<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
或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屬性的不相關或其他標記,但並非總是如此。
其他可能導致網絡故障的事情:
onload
和onerror
屬性可用於跟蹤您的用戶是否具有活動的Internet連接,這是我嘗試使用我的庫check-online.js解決的問題: http ://github.com/devinrhode2/ 入住在線
有一些明顯的測試要做,看看是否
onload
是特定於body
, frame
, iframe
, img
, link
和script
元素的事件。 基本上任何代表要加載的資源的東西。 對於body
,這是有問題的文件。 對於其他人來說,每個都很明顯。
許多元素都有onload事件。 你可以在這里找到它們
但是如果你想測試DOM的加載,那么最好使用window.onload 。 還建議您將javascript代碼與HTML標記分開。
根據此頁面 ,您可以使用onload
: <body>
, <frame>
, <frameset>
, <iframe>
, <img>
, <link>
和<script>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.