window.open为什么有些用户的IE每次都会打开新窗口。

时间:2014-12-29 04:57:15

标签: javascript internet-explorer

这个问题让我发疯,我有一个通过.asp页面引用的应用程序,在其中一个页面中有一个用于打开弹出窗口的javascript函数

window.open("popup.aspx", "myPopup","width=300,height=100,status=no,toolbar=no,menubar=no,scrollbars=no,resizable=no,alwaysLowered=yes,location=no,directories=no,titlebar=no");

查看各种文档已经声明,如果使用相同的窗口名称,则将重新使用此窗口。这在大多数用户的IE上是正确的,但在某些最终用户PC上,即使使用相同的代码,它也会打开一个额外的弹出窗口。

为了验证这一点,我创建了一个test.aspx并简单地复制了之前声明的open函数。在我的电脑上,我有一个弹出窗口,有些用户有两个。它绝对是这台PC上的Internet Explorer,因为我安装了Firefox并且没有问题,并且引用了相同的窗口。 IE(11)版本全部相同。

有什么问题??

1 个答案:

答案 0 :(得分:0)

将打开窗口的对象引用保存到全局变量并在调用window.open之前进行验证:

var windowObjRef = null; // global variable

if(windowObjRef== null || windowObjRef.closed)
{
   windowObjRef = window.open("popup.aspx", "myPopup","width=300,height=100,status=no,toolbar=no,menubar=no,scrollbars=no,resizable=no,alwaysLowered=yes,location=no,directories=no,titlebar=no");
}
else
{
  windowObjRef.focus();
}