2

当运行下面的 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 在提升模式下运行时才会发生。

4

1 回答 1

2

请试试这个..这将检查窗口是否仍然打开或关闭..

<script type="text/javascript">
 var myWindow = null;

 if(!myWindow || (myWindow && myWindow.closed)){
 myWindow = window.open("http://www.google.com", "test", "resizable=no,scrollbars=yes,width=260,height=225");
          }
         else{
       myWindow.location.href = 'http://www.google.com';
       }

</script>
于 2014-07-11T07:25:34.437 回答