VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2159|回复: 10

一个框架页面,怎么判断window.parent.opener是否关闭??

[复制链接]

2

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-2-14 10:30:01 | 显示全部楼层 |阅读模式
怎么判断window.parent.opener是否关闭,window.parent.opener关闭是,用js取出来的时候window.parent.opener是不等于null的。
回复

使用道具 举报

0

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-4-13 21:00:02 | 显示全部楼层
if(window.parent.opener){
     没有关闭
}else{
     已经关闭
}
回复

使用道具 举报

0

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-4-13 21:30:01 | 显示全部楼层
if(window.parent.opener){
    没有关闭
}else{
    已经关闭
}
回复

使用道具 举报

0

主题

29

帖子

19.00

积分

新手上路

Rank: 1

积分
19.00
发表于 2020-4-15 17:30:01 | 显示全部楼层
应该是if(window.parent.opener.close()) 这个吧?没有用过,哈哈
或者是window.parent.opener = "undefine" ? 感觉很无厘头了
回复

使用道具 举报

1

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-6 21:45:02 | 显示全部楼层
window.parent.opener.closed?"关了":"没关"
回复

使用道具 举报

0

主题

6

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-7 01:45:01 | 显示全部楼层
var 7660367 = window.parent.opener;

if (typeof(7660367)!="undefined" && !7660367.closed)
{
    ;//
}
回复

使用道具 举报

2

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-24 22:00:01 | 显示全部楼层
function shutwin()
{
     var wp = window.parent.opener;
        if(wp!=null && typeof(wp) != "undefined" && !wp.closed)
        {     
            if (wp.document.forms[0].txtRefreshParent != null)
            {
                wp.document.forms[0].txtRefreshParent.value="Refresh";
            }
            else
            {
               if(wp.document.forms[0].ctl00_MainPlaceHolder_txtRefreshParent!=null)
               {
                   wp.document.forms[0].ctl00_MainPlaceHolder_txtRefreshParent.value="Refresh";
               }
            }
            wp.document.forms[0].submit();
        }
    window.parent.close();
}
事实上wp已经关闭,但是wp.closed为什么等于true呢,且typeof(wp)="object",为什么???
回复

使用道具 举报

0

主题

6

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-7-31 13:30:01 | 显示全部楼层
事实上wp已经关闭,但是wp.closed为什么等于true呢,且typeof(wp)="object",为什么???
看来搂住已经实践了一把,上面的结果也是可以理解的,我胡乱抛下砖,高手再继续。
wp = window.parent.opener;
wp一个window的引用,一般window如果关闭,那么这个window本身已经销毁了,原则上对应的object就不存在了。但是这只是在单个页面的情况下。
而这里wp的子页面还存在,因此子页面的window对象还存在,而这个window对象中还保存着对wp的引用(即window.parent.opener),尽管在wp的环境对象中,其自身已经是undefined,但是在子页面中window.parent.opener仍然存在,应该是一个null的object(也许不是null),因此wp.closed为true。
解释得有点牵强呵呵。

回复

使用道具 举报

2

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-8-1 22:15:01 | 显示全部楼层
问题已经解决,方案如下:
function shutwin()
{
    try
    {
         var wp = window.parent.opener;
            if(wp!=null)
            {   
                window.parent.close();
                if (wp.document.forms[0].txtRefreshParent != null)
                {
                    wp.document.forms[0].txtRefreshParent.value="Refresh";
                }
                else
                {
                   if(wp.document.forms[0].ctl00_MainPlaceHolder_txtRefreshParent!=null)
                   {
                       wp.document.forms[0].ctl00_MainPlaceHolder_txtRefreshParent.value="Refresh";
                   }
                }
                   wp.document.forms[0].submit();
            }
            
    }
    catch (exc)
        {
            if (exc.number == -2146828218)//异常:“没有权限”
            {
                return;
            }
            else
            {
                throw exc;
            }
        }
}
回复

使用道具 举报

2

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-8-1 22:30:01 | 显示全部楼层
详细的看了exception,最后找出了这个方案,已经用这个方案顺利解决了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表