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

luxi0194 2007-01-04 06:06:14
怎么判断window.parent.opener是否关闭,window.parent.opener关闭是,用js取出来的时候window.parent.opener是不等于null的。
...全文
1602 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
swazn_yj 2008-02-22
  • 打赏
  • 举报
回复
mark!
shenjf2000 2007-01-09
  • 打赏
  • 举报
回复
事实上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。
解释得有点牵强呵呵。

luxi0194 2007-01-09
  • 打赏
  • 举报
回复
不过以上解决方案不是很好。
luxi0194 2007-01-09
  • 打赏
  • 举报
回复
详细的看了exception,最后找出了这个方案,已经用这个方案顺利解决了。
luxi0194 2007-01-09
  • 打赏
  • 举报
回复
问题已经解决,方案如下:
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;
}
}
}
meizz 2007-01-05
  • 打赏
  • 举报
回复
var meizz = window.parent.opener;

if (typeof(meizz)!="undefined" && !meizz.closed)
{
;//
}
huerreson 2007-01-05
  • 打赏
  • 举报
回复
window.parent.opener.closed?"关了":"没关"
luxi0194 2007-01-05
  • 打赏
  • 举报
回复
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",为什么???
hero4u 2007-01-04
  • 打赏
  • 举报
回复
应该是if(window.parent.opener.close()) 这个吧?没有用过,哈哈
或者是window.parent.opener = "undefine" ? 感觉很无厘头了
shenjf2000 2007-01-04
  • 打赏
  • 举报
回复
if(window.parent.opener){
没有关闭
}else{
已经关闭
}
shenjf2000 2007-01-04
  • 打赏
  • 举报
回复
if(window.parent.opener){
没有关闭
}else{
已经关闭
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧