-
2006-11-27
巧妙利用typeof解决父窗口是否存在的判断. - [计算机]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://java511.yourblog.org/logs/593541.html
巧妙利用typeof解决父窗口是否存在的判断. 对于一般情况下判断父窗口是否关闭,采用的是如下方式:
if(opener){
if(opener.closed == false){ //父窗口没有关闭
}else{ //父窗口已关闭
}
}else{
//父窗口已关闭
}
但是对于上述的代码,若是在其他所有的IE窗口(包括父窗口)都关闭,只有弹出窗口没关闭时, 提交弹出窗口,在执行弹出窗口中的上述判断父窗口的代码时,会弹出"没有权限"的js错误对话框. (有的IE会弹出,有的不会弹出,可能和本机设置有关,具体不太清楚.) 避免此问题的方法:改用下面的方法来处理.
if(opener){
if(typeof(window.opener.document)==’unknown’||typeof(window.opener.document) == ’undefined’){ //父窗口已关闭
}else{ //父窗口没有关闭
}
}else{ //父窗口已关闭
}
ok,that’s all.
---------- PS:测试组也真够厉害的,什么样儿的情况都能测得出来.
补充:另一种利用try /catch来避免
function isCloseOpener(){
var isWindowClose = true;
try {
if(opener!=null && !opener.closed) {
isWindowClose = false;
} else {
isWindowClose = true;
}
} catch(e){
isWindowClose = true;
}
return isWindowClose; }
随机文章:
解决“服务”拒绝访问的方法 2008-12-18成功进行软件项目策划的九个基本要点 2006-10-09有用的国外开源项目 2005-01-06转篇文章---职业观察:30岁 软件人才一道坎? 2004-11-10用Java程序获取绝对路径 2004-06-19
收藏到:Del.icio.us





