刷新父项时如何找到子窗口?

时间:2011-07-06 10:28:01

标签: javascript html

hejdig。

在Web解决方案中,我希望重用我的子窗口,但在主窗口刷新时会丢失对它的引用。 我怎样才能找到一个孤儿窗口? (由于父刷新而孤立)

/ OF


情况:

  1. 父窗口存在。
  2. 用户按下按钮打开子窗口。
  3. 用户在子窗口中输入文字。
  4. 用户要求父窗口刷新。
  5. 用户按下按钮打开子窗口。
  6. 子窗口刷新,用户文本消失。
  7. 在我的情况下,Parent是一个CMS,当用户查看新文章时,它很自然地重新加载;这种情况并不新鲜。新的是我有一个可编辑的子窗口。

    所以现实世界的情况就像:

    1. 用户浏览网站(CMS)。
    2. 用户打开弹出窗口并被要求输入一些数据。
    3. 用户在弹出窗口中输入一些数据。
    4. 用户决定查看新文章(在父级中获取新网址)。
    5. 弹出窗口现已隐藏,因此用户点击顶部再次打开弹出窗口。
    6. 弹出窗口刷新(我试图避免)并集中注意力。

    7. 我找到的唯一解决方法是使用iframe,frameset或打开第三个窗口,在我的情况下,这些解决方案都不可能。

      调用

      wnd = window.open( "", "uniquename" );
      

      因为重新加载孩子而无效。

      未经验证的想法是检查wnd句柄对于浏览器会话是否是唯一的并将其存储在cookie或类似内容中。另一个未经尝试的想法是,如果孩子能够发现它是否是孤儿,然后通过计时器尝试找到它的父母。

1 个答案:

答案 0 :(得分:1)

嗨,因为你说你自己尝试将计时器放在孩子身上,这将注册为自己 所以在父创建函数

var wnd = null;
function registerChild(child){wnd = child}

每隔一秒或一半在计时器中的孩子

window.opener.registerChild(window);