现在有一个页面 有topframe leftframe mainframe 三个frame 当在leftfrmam点击链接时 在topframe里会显示一个提示 正在处理请求,页面加载完成后关闭提示, 现在链接需要请求到其他服务器,获取其他服务器的页面 显示在mainframe里 这时就无法监测页面加载完成的事件了。求个思路,怎么处理才能把topframe里的提示给隐藏了。
调试欢乐多
<iframe src="http://xxx" onreadystatechange="doIt(this)"><script>function doIt(athis){
var state = athis.readyState;
switch(state){
case 'complete'://完成
//xxx
case 'loading'://loading
//xxx
case 'interactive':
//xxx
}
}
</script>
测试环境Ie7,其它浏览器可能需要做js的相应修改,由于时间关系,你自己完成.
现列出测试文件.
index.htm
<html><head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<title>frame测试</title>
<script type="text/javascript">
function cls()
{
var topframe=document.frames("top");
topframe.document.getElementById("txtstatus").value="加载完成";
}
</script>
</head><frameset rows="100,*">
<frame name="top" scrolling="no" noresize target="contents" src="top.htm">
<frameset cols="150,*">
<frame name="left" target="main" src="left.htm">
<frame name="main" onload="cls();">
</frameset>
<noframes>
<body> <p>此网页使用了框架,但您的浏览器不支持框架。</p> </body>
</noframes>
</frameset>
</html>
top.htm
<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
<base target="contents">
</head><body><p>加载状态:</p><input id="txtstatus" name="txtstatus" value="" /></body></html>left.htm
<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>内网链接</title>
<base target="main">
<script type="text/javascript">
function test()
{
var topframe=window.parent.parent.frames("top");
topframe.document.getElementById("txtstatus").value="正在加载...";
}
</script>
</head><body>
<!--<input type="button" value="test" onclick="test();" />--><p>内网链接:</p>
<p>1.<a href="local.htm" onclick="test();">内网链接测试</a></p>
<p> </p>
<p> </p>
<p>外网链接:</p>
<p>2.<a href="http://map.baidu.com" onclick="test();">外网链接测试</a></p></body></html>local.htm
<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>相同域下的网页</title>
</head><body><p>相同域下的网页.</p></body></html>
<script type="text/javascript" defer="defer">
document.getElementById("topframe里面提示信息的id").style.display='none';
</script>
在top里面先加载自己的页面,另外一个地址的页面放在隐藏的iframe里,加载完毕后将iframe显示,尺寸放大。参考#5楼的方法