2012-07-18 149 views
0

我想关闭浏览器窗口,无论它是否在open。是新的JavaScript的,所以帮助我创建使用JavaScript的以下逻辑。我的JavaScript代码是在这里:打开和关闭JavaScript窗口

if (myWindow.open() == true) { 
    myWindow.close(); 
} else { 
    myWindow=window.open('http://index.html', 
         'popUpWindow', 
         'height=700,width=800,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes' 
         ); 
} 

回答

0

使用closed属性来检查的窗口状态,但首先检查window对象是否已经创建与否。

var myWindow=null; 
if (myWindow && !myWindow.closed) { //exist and is not closed 
    myWindow.close(); 
    myWindow=null; //delete the object 
} else { //not exist or is closed 
    myWindow=window.open('http://index.html', 
         'popUpWindow', 
         'height=700,width=800,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes' 
         ); 
} 
0

是的,我同意克里斯托夫

if (!myWindow.closed) { 
    myWindow.close(); 
} 

进一步

注:存在与上述特定浏览器的差异。如果你打开窗口Javascript (via window.open()),那么你可以用JavaScript关闭窗口,如果你有你的情况参考。 Firefox不允许你关闭其他窗口。我相信IE会要求用户确认。其他浏览器可能有所不同。

+0

它不工作 – 2012-07-18 11:36:46

+0

您正在使用哪种浏览器 – 2012-07-18 12:29:22

0

您接近正确的结果。

只是检查

(myWindow.closed === false) // same as (!myWindow.closed) 

,而不是

(myWindow.open() == true) 

(因为open()将刚刚打开另一个窗口,您的检查将失败。)

还要注意,你需要写index.htmlhttp://sub.yourdomain.tld/index.html,但不是http://index.html