2014-12-29 32 views
1

这个问题快把我逼疯了,我有通过.asp页,并在其中一个页面引用的应用程序有一个JavaScript函数来打开一个弹出window.open为什么有些用户的IE每次都打开新窗口。

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)版本全部相同。

什么问题?

+0

不是一个答案,你会发现,但IE是臭名昭著的与HTML走失标准。您的用户看到重复的弹出窗口很可能在IE的旧版本(即6或7或更低版​​本)上。这些用户是否在Windows XP上?如果是这样,他们可以很容易地运行IE 6,但他们可以在XP上运行的最高版本IE是IE 8。 – ventaur

+0

用户操作系统的麻烦是win7和IE(11.0.15)。我的环境是一样的,但没有问题。 – user3085427

+0

那么,我的猜测是那些少数用户在IE中有一个设置,大部分都没有。在“Internet选项”>“选项卡”下,有一些关于始终在新窗口中打开的设置。他们可能会检查该选项。 – ventaur

回答

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(); 
} 
+0

谢谢,但这个弹出窗口调用其他页面,所以变量设置为空。所以新打开相同的弹出。 – user3085427

相关问题