在IE6下bug很明显,分别是:
js:
1: function fCreateScript(){2: var oScript = document.createElement("SCRIPT");3: document.getElementsByTagName("HEAD")[0].appendChild(oScript);4: oScript.src = sUrl;5: oScript.attachEvent("onreadystatechange",function(){fReadyStateChangeHandler(oScript)});6: }7: function fReadyStateChangeHandler(oScript){8: alert(oScript.readyState);9: //在读取数据的情况下,IE6先会出complete,这时候JS没有在window下面执行10: //然后会出loaded11: //在读取缓存情况下,只会出complete12: //这时候只能使用额外的方法判断JS是否加载成功13: //造成这个问题的主要原因是oScript在设置src之前就加到了HEAD里面14: }
要解决以上问题,需要在oScript加入dom之前设置它的src,readyState的新请求状态就为:loading->complete/loaded;读缓存的状态就为:loaded
img:
要解决以上问题,需要在设置oImg的src之前就绑定onload,onerror等事件。1: function fLoadImg(){2: var oImg = document.createElement("IMG");3: oImg.src = sImgSrc;4: oImg.onload = function(){5: alert("onloaded");6: //如果是图片缓存,在设置onload函数之前图片已经加载完成7: //这时候是不会触发onload事件8: }9: }
没有评论:
发表评论