最近在做產品的維護,修改一些老的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);
//這裏是回調函數
}
});