《如何配合IE的history歷史記錄用戶操作歷史》中我介紹了一種在ajax應用中模擬history的方法。在實際使用的時候發現后的時候刷新頁面出來的效果并非預期的效果,跟蹤調試后發現,原來在刷新頁面的時候隱藏的iframe頁面比IE緩存了,可以即時回調父窗口,而父窗口這是可能還沒有做好被回調的準備。
因此把隱藏框架的回調腳本
<SCRIPT>
window.onload=function(){
parent.gotoHistory(location.hash.substr(1));
}
</SCRIPT>
window.onload=function(){
parent.gotoHistory(location.hash.substr(1));
}
</SCRIPT>
改為
<SCRIPT>
function init(){
if(parent.document.readyState!="complete")
setTimeout("init()",100);
else parent.gotoHistory(location.hash.substr(1));
}
init();
</SCRIPT>
function init(){
if(parent.document.readyState!="complete")
setTimeout("init()",100);
else parent.gotoHistory(location.hash.substr(1));
}
init();
</SCRIPT>
這樣就能保證回調順利進行了。