相信很多同仁做的系统后到都是用frameset或iframe来加载不同页面的,不可不知道大家有没有注意到,当frame框架中的页面已经加载完成后,可是ie浏览器的状态栏还会一直显示一个正在加载的状态。
这样虽没有对功能有什么影响,可是体验总不怎么好,那如何解决这个问题了,网上有很多文章都有说过在被目标页加载后设置window.status = "xx"这类的,可是我发现这个方法这样的情形下并不怎么好使。
代码如下:
<div>
<ul>
<li><a href="1.html" target="page"></a></li>
<li><a href="2.html" target="page"></a></li>
<li><a href="3.html" target="page"></a></li>
</ul>
<div><iframe src="" id="page" name="page" frameborder="0"></iframe></div>
</div>
然后在1.html页面中加入
复制代码 代码如下:
window.onload = function(){
window.status = "完成";
}
结果发现1.html页面加载完成后浏览器下面进度条还一直在那里。
通过长时间反复的实践最后终于找到了解决问题的一种方法:不用href链接的方式来打开页面。改为通过Javascript来改变iframe方式来实现。
复制代码 代码如下:
<script type="text/javascript">
function redirect(src){
document.getElementById("page").src = src;
}
</script>
<div>
<ul>
<li><a href="javascript:redirect('1.html')" target="page"></a></li>
<li><a href="redirect('2.html')" target="page"></a></li>
<li><a href="redirect('3.html')" target="page"></a></li>
</ul>
<div><iframe src="" id="page" name="page" frameborder="0"></iframe></div>
</div>
到这一步以为问题解决了,不想浏览器还报起脚本错误来了,提示redirect未定义,最后搞明白了,原来是target属性忘记去掉了。
至此,问题完整解决了。因在公司不方便,所以就贴样例了。
新闻热点
疑难解答