Javascript 不同的窗口。以管理员身份运行Internet Explorer 11时的打开(…)行为

Javascript 不同的窗口。以管理员身份运行Internet Explorer 11时的打开(…)行为,javascript,html,iframe,internet-explorer-11,Javascript,Html,Iframe,Internet Explorer 11,当以管理员身份运行Internet Explorer时,我看到调用window.open()的行为有所不同。我无法在一个sanboxed的iframe环境(如jsfiddle/codepen等)中复制它,但我会尽全力在这里解释这个问题 在IE中,不是以管理员身份运行,当我按下“Empty”按钮时,它会调用window.open(“”,windowname,…)并显示一个新的空白窗口。接下来,我按下按钮“Full”,它调用window.open(“”,windowname,…),原来的空白窗口被设

当以管理员身份运行Internet Explorer时,我看到调用window.open()的行为有所不同。我无法在一个sanboxed的iframe环境(如jsfiddle/codepen等)中复制它,但我会尽全力在这里解释这个问题

在IE中,不是以管理员身份运行,当我按下“Empty”按钮时,它会调用window.open(“”,windowname,…)并显示一个新的空白窗口。接下来,我按下按钮“Full”,它调用window.open(“”,windowname,…),原来的空白窗口被设置为Google

在IE中,当以管理员身份运行时,初始空白窗口不会被覆盖。而是在空白窗口旁边出现一个带有谷歌的新窗口。

我在下面包含了我的测试代码。我不确定它在iframe中的事实是否相关,但我只是以防万一


源看起来像什么


var windowname=“TESTWINDOW”;
var features=“menubar=no,location=no,resizable=yes,status=yes,width=500,height=500”;
函数doEmpty(e){
window.open(“”,windowname,features);
}
函数doFull(e){
窗口打开(“http://www.google.com“、窗口名、功能);
}
身体{
宽度:1000px;
高度:1000px;
}
空的
满满的

尝试另一种方法,不使用window.open()

有一个很好的信息库

只需包含js和css文件:

<script src="PATH_TO_FILE/alertify.min.js"></script>
<link rel="stylesheet" href="PATH_TO_FILE/alertify.css" />
<link rel="stylesheet" href="PATH_TO_FILE/alertify.default.css" />
有很多方法,如:提示、确认、日志、成功


试试看:)

window.open()的行为取决于一些因素,特别是在Internet Explorer中

由于您提供了一个宽度/高度参数,浏览器应该以弹出窗口的形式打开新窗口(如果您已经设置了允许的设置)-如果删除宽度/高度参数,浏览器通常会在新选项卡中打开

由于windowname被重复使用,并且不包含空格或hypens,因此浏览器应为这两个窗口重复使用相同的窗口实例。(如果您有空格或连字符,IE将阻塞并无法打开弹出窗口(已知IE错误))

“TESTWINDOW”可能是唯一的,但也要注意IE有一个bug,如果您有另一个站点尝试调用window.open(),并且它们使用与您/您的站点相同的窗口名称,浏览器将重新使用该弹出窗口。IE没有正确地将它们“命名空间”到域(已知的bug)

现在(IE7/8?)微软改变了启动位置为“”(空字符串)和/或“about:blank”、或“javascript:;”或“javascript:void;”等窗口的一些行为,使得它们在打开它们的域的同一级别上不受信任。您可能遇到了与此相关的问题。(如果您使用两个不同但“真实”的URL,我会好奇这种行为是否更好)

由于新的弹出窗口是一个命名窗口,如果iframe或其父窗口的名称为“TESTWINDOW”,您也会得到一些奇怪的结果


最后,您指出,根据登录用户的不同,您会得到不同的结果。由于IE中的设置是针对每个用户的,因此您很可能会看到不同的设置正在运行。e、 g.您的某个配置文件是否在兼容模式列表中包含您的域(或本地主机)?或者您的一个配置文件是否有不同的弹出窗口阻止规则或隐私设置?

有趣的是,其他浏览器都有这样做,还是只是IE?尝试了Firefox和Chrome,但它们没有打开第二个选项卡。仅IE11以管理员身份运行。IE有很多…让我们称之为“模糊”(安全)设置–我猜其中一个可能会有所不同,这取决于您是以管理员身份运行IE还是以普通用户身份运行IE。然而,以管理员身份运行IE显然不是一个好主意。。。。
alertify.alert("Message");