父页面<html>
<head></head>
<body>
父页面内容
<iframe id="main" src="子页面"><iframe>
<body>
<html>
框架内页面<html>
<head></head>
<script>
if (parent.document.getElementById("main")!= null) {
  parent.location.reload();
} else {
  alert();
}
</script>
<body>
iframe内,页面内容
<body>
<html>出现如下问题:
如果父页面载入进来后,子页面要刷新父页面,但页面会不停的刷新,google了半天也不知道该从哪里入手,各位这个问题如何解决?谢谢

解决方案 »

  1.   

    上面的代码少了点东西
    下面的代码是完整的代码<html>
    <head></head>
    <script>
    function checkLoad(){
    if (parent.document.getElementById("main")!= null) {
      parent.location.reload();
    } else {
      alert();
    }
    }
    </script>
    <body onload="checkLoad()">
    iframe页面内容
    <body>
    <html>
      

  2.   

    反正刷新父页面是不行的,可以采取ajax之类的方法,修改父页面除iframe以外的元素
      

  3.   

    注册一个cookie变量来控制应该可以阻止死循环,框架内的页面在刷新前判断是否存在这个cookie变量来决定是否执行刷新。
      

  4.   

    我的系统内容:子页面其实是通过正常登录进来时候显示的模块选择页面,当选择进入某个模块主页面后(页面内容:左侧目录树,右面是一个iframe)session失效时候,子页面会定向到登录页面(主页面内容不刷新时候是不会定向到登录页面还保留原来的效果),当通过子页面登录后会定向到模块选择页面,子页面会判断是否存在主页面iframe,如果存在则将刷新主页面,如果不存在证明当前页面没有iframe
    不知道我说清楚没?
    如果明白,这个怎么解决。
      

  5.   

    // 这里为什么一直要判断main不等于null呢? 这个条件不是一直成立吗?
    if (parent.document.getElementById("main")!= null) {
      parent.location.reload();
    } else {
      alert();
    }
      

  6.   

    当然的!
    if (parent.document.getElementById("main")!= null) {
    这个对象就是子页面本身,每次加载后判断都是存在
    自然会一直执行刷新
    把这个判断语句里的对象要放到父页面中 main 框架的后面即可 就不会出现了(但这样又有什么用?)
    楼主到底要干嘛?
      

  7.   

    我上传了一部分图片,通过图片说明一下意图。
    1,这个是登录界面2,通过登录后,登录到模块选择页面3,选择模块后,进入模块界面,模块界面左边是目录树,右边是iframe,如果session失效,右边内容会定向到登录窗口。
    4.通过右边窗口登录进来后,会定向到模块选择界面。在此时模块选择界面需要判断是否有父页面,如果有刷新整体页面,如果没有不执行刷新。注:刷新的目的是因为不想整个页面回到登录界面,只想让页面一直保持在刚才用户所在的页面。如果整体都定向到登录界面,那样感觉不好。我没有保存用户刚才浏览的地址,所以只能用我的这种方法