本文目录一览:
IE及IE6浏览器中判断JS文件加载成功失败的方法
这篇文章主要介绍了IE及IE6浏览器中判断JS文件加载成功失败的方法,本文使用vbscript来解决这个问题,需要的朋友可以参考下
浏览器的文件加载实际上是有非常纠结的兼容问题的。最近看到@lifesinger做了一个具体的总结。这里比较麻烦的是IE6~8不区分加载成功或失败,都走一个回调。在网上看了一种解决方案是,在加载文件的最后置一个全局变量或改变标签的属性来区分,这样成功与否就通过这个标志位判断。但显然不太完美,还要改加载文件。
后来尝试另一种思路,先创建一个vbscript,src置成一个JS文件,如这个文件加载正常,肯定会报错否则不会有反应。这样如果window.onerror捕获到错误了,说明文件有效,再正常加载。如果没捕获到,n秒后会触发一个超时。
这部分代码:
代码如下:
if(ie
ie
9)
{
vbs
=
doc.createElement('script');
vbs.language
=
'vbscript';
vbs.src
=
file;
saveErrorHandle
=
win.onerror;
win.onerror
=
function()
{
load();
win.onerror
=
saveErrorHandle;
return
true;
};
setTimeout(function(){
ref.parentNode.insertBefore(vbs,
ref);
},
0);
}
else
{
load();
}
如何判断调用的外部JS文件加载完成?
script onload事件就可以了,但是ie6不支持啊,ie6是用readystate来判断是否加载完毕了~!如果浏览器支持readystate,那么就监听onreadystatechange事件就行了,在onreadystatechange在中判断readystate是否complete或者loaded就知道script加载完毕了~!
js如何判断引入的js文件是否加载完毕
js怎么判断flash是否加载完毕了呢?
我们怎么在flash加载完毕之时,回调一个我们设定的js函数?
这个问题,一直困扰了我很久,直到今天,请教了一个非常牛B的人物之后,突然来了感觉!
呵呵,也许,这个问题在你们看来不是问题,不过对于我来说,确实是个问题,因为我一直不知道该怎么判断swf文件是否加载完毕了?
从前都是只知道img.onload等等。
好了,言归正传,我们到底该怎样判断一个flash是否加载完了呢?
没错,就是轮询,然后判断flash的某个方法是否能正常运行?
示例如下(伪代码):
01 (function () { 02 var flash = 网页上某个flash对象。 03 04 var interval = setInterval(function () { 05 try { 06 if(flash.IsPlaying()) { //轮询flash的某个方法即可 07 callBack callBack.call(flash, args); //回调函数 08 clearInterval(interval); 09 } 10 } catch (ex) { 11 12 } 13 }, 1000); 14 15 var callBack = function () { 16 alert('loaded'); 17 } 18 })();
//具体运用时,flash放进setInterval或者setTimeout的函数闭包中时,可能会由于JavaScript单线程问题,导致flash不能调用IsPlaying等flash player函数或者调用结果不对等状况,这里有个临时的解决办法,我们可以读取在轮询函数中读取flash的TotalFrames属性,读取得到,我们就可以认为flash已经完全加载到页面中了!!!
判断JS是否加载完毕?
我们可以对加载的 JS 对象使用 onload 来判断(js.onload),此方法 Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持,但 IE6、IE7 却不支持。曲线救国 —— IE6、IE7 我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况(一般为 loading 、loaded、interactive、complete),当返回状态为 loaded 或 complete 时,则表示加载完成,返回回调函数。