在我的项目中,我正在设计一个像Youtube一样的页面加载进度条。为此,我正在捕获所有丰富的元素标签,如img,iframe,视频,音频等,并在每个标签加载时控制进度条的宽度。您可以查看下面的代码。


 var media_nos = $(“body img”)。length + $(“body iframe”)。length + $(“body video”)。length + $(“link”)。length + $(“body script”)。length;
的console.log(media_nos);

 doProgress();

 //进度条的功能
 function doProgress(){
 $(“body img,body iframe”)。on('load',function(){
 loading.loaded ++;
 console.log(loading.loaded);
 var newWidthPercentage =( loading.loaded / media_nos)* 100;
 animateLoader(newWidthPercentage +'%');
})。each(function(){
 if(this.complete){
 $(this).trigger('load');
}
});
 $('body video')。on('canplaythrough',function(){
 loading.loaded ++;
 var newWidthPercentage =(loaded / media_nos)* 100;
 animateLoader(newWidthPercentage +' %');
})。each(function(){
 if(this.complete){
 $(this).trigger('load');
}& #xA;});

 }

 //为加载器设置动画
 function animateLoader(newWidth){
 $( “#进度”)宽度(newWidth);
如果(loading.loaded == media_nos){
 setTimeout(function(){
 $(“#progressBar”)。animate({opacity:0});
},500);
 }
 }



 但是,这里的问题是我无法使用jquery .on跟踪链接和脚本标记的加载( 'load')方法就像我为img,iframe标签等所做的那样。如果我将内联onload属性写入链接标签,如下所示。


 &lt ; link rel =“stylesheet”href =“css / bootstrap.min.css”onload =“load();”>
 < link rel =“stylesheet”href =“css / bootstrap-theme.min.css”onload =“load();”>
 < link rel =“stylesheet”href =“css / style.css”onload =“load();”>
 < meta name =“viewport”content =“width = device-width,initial-scale = 1”>
 < link rel =“stylesheet”href =“http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css"onload =”load(); “>



 main.js


 var loading = {“loaded”:0};
 function load(){
的console.log( “你好”);
 loading.loaded ++;
 console.log(loading.loaded);
}



 正如您所知,编写内联onload非常忙碌对于每个这样的链接和脚本标记,有没有什么方法可以像.on('load')方法更好地跟踪链接和脚本标记的加载?提前致谢。