0

我想关闭一个浏览器窗口,无论它是否在open. 我是 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'
                         );
}
4

3 回答 3

0

是的,我同意克里斯托夫

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

此外

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

于 2012-07-18T11:21:44.580 回答
0

你接近正确的结果。

只需检查

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

代替

(myWindow.open() == true)

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

另请注意,您需要写index.htmlor http://sub.yourdomain.tld/index.html,而不是http://index.html

于 2012-07-18T11:30:04.953 回答
0

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

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'
                        );
}
于 2012-07-19T00:55:14.173 回答