Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持,但 IE6、IE7 却不支持。曲线救国 —— IE6、IE7
我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况(一般为 loading
、loaded、interactive、complete),当返回状态为 loaded 或 complete 时,则表示加载完成,返回回调函数。
对于 readyState 状态需要一个补充说明:
1.在 interactive 状态下,用户可以参与互动。
2.Opera 其实也支持 js.onreadystatechange,但他的状态和
IE 的有很大差别。
代码如下:
<script>
function include_js(file) {
var _doc = document.getElementsByTagName('head')[0]
var js = document.createElement('script')
js.setAttribute('type', 'text/javascript')
js.setAttribute('src', file)
_doc.appendChild(js)
if (!/*@cc_on!@*/0) { //if not IE
//Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload
js.onload = function () {
alert('Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload')
}
} else {
//IE6、IE7 support js.onreadystatechange
js.onreadystatechange = function () {
if (js.readyState == 'loaded' || js.readyState == 'complete') {
alert('IE6、IE7 support js.onreadystatechange')
}
}
}
return false
}
include_js('http://www.planabc.net/wp-includes/js/jquery/jquery.js')
</script>
一般这种网站都是图片特别多而且质量很高导致加载慢。所以
我们基本监听图片加载进度就可以达到比较好的效果。
而图片我们可以采用预加载
(也就是浏览器可以缓存,到真的要用的时候会自动从缓存读取)
那么我们只要检测预加载图片的进度就可以了
代码基本如下:
var
imgs
=
["1.jpg","2.jpg"]
for(var
i=0i<imgs.lengthi++){
var
img
=
new
Image()
img.onload
=
function(){
//图片加载完毕
此时更新进度条
}
img.src
=
imgs[i]
}