如题。
假如 A 通过 open.window 打开 B 窗口
B 又 打开 C
C 又 打开 D
....如何获得A窗口,
我的最终目的,是在最后一个窗口关闭时,来进行刷新A窗口
,所以需要在最后 一个窗口中,获得A窗口,
如何获取?注意,不要是 window.parent.parent.parent....,因为打开的子窗口没有规律,也许一个,也许多个
想做一个通用的
用js如何获得A窗口?

解决方案 »

  1.   

    var win = window;
    while(win.parent){
       win = win.parent;
    }//A窗口处理函数
    win.doSomethingFn();
      

  2.   

    window.open()打开窗口,从子窗口获取父窗口通过window.openervar w = window;
    while(w.opener) w = w.opener;如果是框架页面,通过window.parent访问上层窗口
    访问最外层窗口用window.top
      

  3.   

    谢谢 lihui_shine,
    假如 目前窗口的依次打开次序是 A 打开B ,B打开了C,C打开了D,D打开了E如何从E直接得到A窗口?
    window.top只适合iframe使用吧。
    要想由E得到A,是否只能一层层的用 window.opener 找?
      

  4.   

    我估计你的需求要考虑用div弹出遮盖的形式来模拟
      

  5.   

    哦。谢谢 fengsky491 热心的帮助这个问题郁闷死我了看看还有没有兄弟帮我想出个办法
      

  6.   

    给每个页面加上:
    var topWindow = null;
    window.topWindow = topWindow?topWindown:window;
    然后打开新窗口的时候:
    var subWindow = window.open("url");
    subWindow.topWindow = window.topWindow;
    只是一个想法,没试过,可行的话topWindow应该总是指向A。
      

  7.   

    只能一层层的用 window.opener 而且中间窗口不能关闭
      

  8.   

    试试可不可以把祖先页面A作为对象传给每一个子页面,子页面关闭的时候执行祖先的刷新。
    在a页面中打开子页面b
    var a = location;
    var b = window.open(url);
    b.祖先 = a;
    b.onclose = function(){a.reload();}
    打开子页面的子页面c,在b页面中:
    var a = this.祖先;
    var c = window.opne(url);
    c.祖先 = a;
    c.onclose = function(){a.reload();}
    每打开一个子页面都把a传下去
      

  9.   

    "top.location.href"是最外层的页面跳转