Javascript 刷新父窗口时如何查找子窗口?

Javascript 刷新父窗口时如何查找子窗口?,javascript,html,Javascript,Html,海迪格 在web解决方案中,我希望重用我的子窗口,但在主窗口刷新时丢失对它的引用。 如何找到孤儿窗口?(由于父刷新而孤立) /的 情况: 父窗口存在 用户按下按钮打开子窗口 用户在子窗口中输入文本 用户要求父窗口刷新 用户按下按钮打开子窗口 子窗口刷新,用户文本消失 在我的例子中,家长是一个CMS,当用户看到一篇新文章时,它很自然地会重新加载;这种情况并不新鲜。新的是我有一个可编辑的子窗口 所以现实世界的情况是这样的: 用户浏览一个站点(CMS) 用户打开一个弹出窗口,要求输入一些数据 用户在

海迪格

在web解决方案中,我希望重用我的子窗口,但在主窗口刷新时丢失对它的引用。 如何找到孤儿窗口?(由于父刷新而孤立)

/的


情况:

  • 父窗口存在
  • 用户按下按钮打开子窗口
  • 用户在子窗口中输入文本
  • 用户要求父窗口刷新
  • 用户按下按钮打开子窗口
  • 子窗口刷新,用户文本消失
  • 在我的例子中,家长是一个CMS,当用户看到一篇新文章时,它很自然地会重新加载;这种情况并不新鲜。新的是我有一个可编辑的子窗口

    所以现实世界的情况是这样的:

  • 用户浏览一个站点(CMS)
  • 用户打开一个弹出窗口,要求输入一些数据
  • 用户在弹出窗口中输入一些数据
  • 用户决定查看一篇新文章(在父级中获取一个新URL)
  • 弹出窗口现在隐藏,因此用户单击顶部再次打开弹出窗口
  • 弹出窗口被刷新(我试图避免)并聚焦

  • 我找到的唯一解决办法是使用iframe、frameset或打开第三个窗口,但在我的情况下,这些解决方案都不可能实现

    召唤

    wnd = window.open( "", "uniquename" );
    
    无法工作,因为它会重新加载孩子


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

    您好,正如您自己所说的,尝试在孩子身上放置计时器,将自己注册到prent 所以在父创建函数中

    var wnd = null;
    function registerChild(child){wnd = child}
    
    每隔一秒或半秒在计时器中输入一次

    window.opener.registerChild(window);
    

    您好,正如您自己所说的,试着在孩子身上放一个计时器,它会将自己注册到prent 所以在父创建函数中

    var wnd = null;
    function registerChild(child){wnd = child}
    
    每隔一秒或半秒在计时器中输入一次

    window.opener.registerChild(window);
    

    对于未来的护目镜:实验表明它应该有效。谢谢不过,我不喜欢计时器的想法,也不喜欢用户可以绕过黑客攻击的时间间隔。因此,我想转换POC->real world应用程序将不得不等待。对于未来的Goggler:实验表明它应该可以工作。谢谢不过,我不喜欢计时器的想法,也不喜欢用户可以绕过黑客攻击的时间间隔。所以我想转换POC->现实世界的应用程序将不得不等待。