《如何配合IE的history历史记录用户操作历史》中我介绍了一种在ajax应用中模拟history的方法。在实际使用的时候发现后的时候刷新页面出来的效果并非预期的效果,跟踪调试后发现,原来在刷新页面的时候隐藏的iframe页面比IE缓存了,可以即时回调父窗口,而父窗口这是可能还没有做好被回调的准备。
因此把隐藏框架的回调脚本
<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>
这样就能保证回调顺利进行了。