gpt4 book ai didi

javascript - 以管理员身份运行 Internet Explorer 11 时的不同 window.open(...) 行为

转载 作者:太空狗 更新时间:2023-10-29 13:51:53 26 4
gpt4 key购买 nike

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

在 IE 中,不是以管理员身份运行,当我按下“清空”按钮时,它会调用 window.open("", windowname, ...) 并出现一个新的空白窗口。接下来,我按下“Full”按钮,它会调用 window.open("http://www.google.com ", windowname, ..) 并将旧的空白窗口设置为 Google。

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

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

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<iframe src="http://127.0.0.1:8888/">
</iframe>
</body>
</html>

来源位于http://127.0.0.1:8888/看起来像

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var windowname = "TESTWINDOW";
var features = "menubar=no, location=no, resizable=yes, status=yes, width=500, height=500";

function doEmpty(e) {
window.open("", windowname, features);
}

function doFull(e) {
window.open("http://www.google.com", windowname, features);
}
</script>

<style>
body {
width: 1000px;
height: 1000px;
}
</style>
</head>

<body>
<button onclick="doEmpty()">Empty</button>
<button onclick="doFull()">Full</button>
</body>

</html>

最佳答案

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

由于您提供了宽度/高度参数,浏览器应该以弹出窗口的形式打开新窗口(如果您的设置允许这样做)——如果您删除宽度/高度,浏览器通常会以新窗口打开标签代替。

由于您的窗口名称被重新使用,并且不包含空格或连字符,浏览器应该为两者重新使用相同的窗口实例。 (如果你有空格或连字符,IE 会窒息而不会打开弹出窗口(已知的 IE 错误))。

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

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

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

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

关于javascript - 以管理员身份运行 Internet Explorer 11 时的不同 window.open(...) 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33002597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com