日期:2014-05-17  浏览次数:20949 次

很难的刷新问题,大侠们请进
我的首页是index.htm,是个htm页面,里面用到的asp程序全部是在*.asp中,并且用 <iframe   name= "I14 "   src= "denglu.asp "   target= "main "                                                                                  
width= "167 "   height= "140 "   align= "top "   border= "0 "                                                                                  
frameborder= "0 "   scrolling= "no "> 浏览器不支持嵌入式框架,或   被配置为不显示嵌入式框架   。 </iframe>
这种框架把需要用到的ASP程序比如登陆,引用到index.htm中,所以在index.htm中有很多的这种框架,其中有个登陆框加和一个可以点击的框架,登陆后才可以点击这个链接并且提交表单,如果没有登陆的话这个链接不可以点击,现在的问题是如果在首页登陆成功后,SESSION里的值已经有了,但是那个链接还是不可以点击,只有手动刷新一下index.htm另一个框架中的链接才能点击,好像是只有刷新首页时那个框架中的SESSION才能得到值,才可以使用,怎么样才能不手动刷新在登陆后就能让那个框架中的链接可以点击???请大侠们尽量不要用 <meta   http-equiv= "refresh "   content= "4 "> 了,有没有其它的方法???先谢谢大侠的帮忙,谢谢,问题解决马上给分

------解决方案--------------------
在框架里的一个页面登陆,框架里的另一个页面不刷新是不能获得session状态的
楼主的意思是想让第二个页面不刷新就可以获得session状态?
------解决方案--------------------
在登录确认后...
Response.Redirect( "框架页 ") ' 让他总体刷新一下.或者:


response.redirect( "返回当前框架页面.htm?k=1 ")
当前框架页面.htm:
<script>
if (location.search != " "){
location.href= "当前页.htm ";
另一个框架name.location.reload();
}
</script>


------解决方案--------------------
确认后.框架页整个刷新一下:
<%
...
response.write " <script> top.location.reload(); </script> "
response.end
%>
------解决方案--------------------
用Cookies吧!
------解决方案--------------------
你iframe内的登录表单还可以触发一个延迟刷新父页,或者提交之后通过了再触发父页刷新。
------解决方案--------------------
所有WEB都需要发送HTTP请求,第一次请求没有Session那么就没有,Iframe是一个独立的请求线程,iframe发送了登录新的请求,返回给iframe新的数据,但是你的父框架是没有从新发送新请求,还停留在之前,所以需要刷新请求一次。

除了提交登录表单后触发刷新,还有一个简单的办法,就是父框架用xmlHTTP循环执行检查某ASP返回值,如果返回了真就可以触发JavaScript其它函数(父页无闪刷新,但iframe还是会发出声音)。

所检查的的那个ASP页只需要判断一下Session然后返回true或false给xmlHTTP,好判断是否登录。
------解决方案--------------------
<script>
history.go(0)
</script>
------解决方案--------------------
如果多个页面都挂接有iframe,其src指向同一提交页,在提交时,可以把父页面地址一同传给后台.

在完成提交处理后,response.redirect( "父页面地址 ")即可.