xiaozhi7616
2009-12-30 14:48
浏览 238

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]

    点赞 打赏 评论

相关推荐 更多相似问题