以下は、要求されたリソースのダウンロードが完了したときに load イベントを発生させる要素のより包括的なリストです。
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
orイベントを発生させることを考慮するのが最善です。error
したがって、基本的に、これらのタグを除いて、 src
or属性を持つすべての要素:href
a
# What else? Not sure off hand..
皮肉なことにOR属性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
属性は、ユーザーがアクティブなインターネット接続を持っているかどうかを追跡するのに役立ちます。これは、私のライブラリ check-online.js で対処しようとしているものです: http://github.com/devinrhode2/check-オンライン
かどうかを確認するために、いくつかの明白なテストを行う必要があります。