最近在做产品的维护,修改一些老的bug.有个bug是jsp页面在加载的时候请求一个iframe.在页面显示的过程中,窗口会短暂的显示一个404页面,然后就到达预期的目的.使用httpwatch查看了一下,是页面发送了一个空的请求.为了避免这个404错误.我的做法是在iframe加载前判断一下是否加载完成,加载完成以后再设置它的display为inline.
代码如下:
//先为iframe 添加一个 onreadystatechange
iframe.attachEvent("onreadystatechange", function(){
//此事件在内容没有被载入时候也会被触发,所以我们要判断状态
//有时候会比较怪异 readyState状态会跳过 complete 所以我们loaded状态也要判断
if(iframe.readyState === "complete" || iframe.readyState == "loaded"){
//代码能执行到这里说明已经载入成功完毕了
//要清除掉事件
iframe.detachEvent( "onreadystatechange", arguments.callee);
//这里是回调函数
}
});