xiaozhi7616 2009-12-30 14:48
浏览 251
已采纳

Window.open 问题,有点变态

我有一个主窗口mainWin,在主窗口会弹出新的窗口popupWin,在新的弹出窗口popupWin还会弹出新的窗口,可能有多层。

现在要在弹出的窗口中去取mainWin中变量,我考虑不能使用opener来取,因为如果弹出多层窗口,中间层的窗口关闭,opener形成的链就断了,这个办法行不通。

我的方法是在弹出窗口中用window.open去取mainWin的实例
[code="javascript"]
var main = window.open('','mainWin','');
[/code]

这样通过main变量就可以取到mainWin的实例,然后操作主窗口中的变量。只要main窗口处于打开状态,window.open就会返回mainWin的实例而不打开新的窗口。

问题是:
如果main窗口先关闭,而其他的弹出窗口尚未关闭,然后在弹出窗口中找mainWin的实例没有找到,window.open方法会打开一个空白的新窗口,这样会影响用户体验。

请问各位高手,如何能使window.open在主窗口关闭的状态下不打开新的窗口?

或者有更简单的思路在弹出窗口中取到主窗口的实例?

  • 写回答

1条回答 默认 最新

  • kjah_1 2009-12-30 15:50
    关注

    在所有子窗口中保留mainWin window对象

    在子窗口onload中加上类似如下代码

    [code="java"]
    if(opener.mainWin){
    if(opener.mainWin.closed){
    alert("mainWin is closed!");
    }else{
    window.mainWin=opener.mainWin;
    }
    }else{
    window.mainWin=opener;
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑