当运行下面的 HTML 页面时,它会打开两个弹出窗口。以前版本的 IE 并非如此。当使用已打开的相同窗口名称进行 window.open 调用时,它应该返回对已打开窗口的引用。但在 IE11 中,它打开了另一个新窗口。
<html>
<head>
<script type="text/javascript">
window.open("http://www.google.com", "test", "resizable=no,scrollbars=yes,width=260,height=225");
window.open("http://www.google.com", "test", "resizable=no,scrollbars=yes,width=260,height=225");
</script>
</head>
</html>
如果您未提及 url,则不会发生此行为。(见下面的html页面)。下面的 html 页面只启动一个弹出窗口。
<html>
<head>
<script type="text/javascript">
window.open("", "test", "resizable=no,scrollbars=yes,width=260,height=225");
window.open("", "test", "resizable=no,scrollbars=yes,width=260,height=225");
</script>
</head>
</html>
当我们提供 url 或导航到 url 窗口时,它的名称就会丢失。如果您尝试使用 window.name 获取弹出窗口名称,它将返回空字符串。
它只发生在 Windows 8.1 和 IE 11 中,而不会发生在 Windows 7 和 IE11 中。我需要做任何调整才能在 IE11 中进行这项工作吗?
更新: 这似乎是 IE 错误。IE 团队正在对此进行调查。 https://connect.microsoft.com/IE/feedback/details/797964/ie11-win-8-1-window-open-with-the-same-name-is-opening-new-popup-window#details
更新 2: 仅当 Internet Explorer 在提升模式下运行时才会发生。