首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在边缘浏览器中出现多个弹出窗口时弹出窗口关闭问题

在边缘浏览器中出现多个弹出窗口时弹出窗口关闭问题
EN

Stack Overflow用户
提问于 2016-06-08 15:31:52
回答 1查看 2K关注 0票数 0

这个问题只发生在边缘,但在IE11和Chrome中有效。有办法绕过这件事吗?

  1. 主窗口打开第一个子窗口(当最终用户单击主窗口中的链接时,Javascript window.open )
  2. 然后,当最终用户单击第一个子窗口中的一个按钮时,JS将关闭这个第一个子窗口。
  3. 然后JS代码有主窗口通过JS代码(1st_child_window.opener.open)打开第二个子窗口。
  4. 如果最终用户试图关闭这个第二个子窗口(一个按钮调用JS window.close或浏览器提供的-“X”-button),它会间歇性地工作。很多时候,它不能关闭,并保持为空白弹出窗口。然后,它只能被“任务管理器”杀死。
  5. 如果步骤2被注释掉(即第一个子窗口处于打开状态),则步骤#4可以正常工作(即第二个子窗口可以适当关闭)。

step#2和step#3的代码列表

代码语言:javascript
复制
function showSecondChildScreen(url, FirstChildWindow) {
....
    var mainWindow = FirstChildWindow.opener;
    FirstChildWindow.close();
    var SecondChildScreen =   mainWindow.open(url,'passWin','width=700,top=120,left=200,titlebar=yes,resizable=yes,scrollbars=yes');
....
}

编辑:用于复制的一个小示例的代码清单

  1. 主窗口的html页面
代码语言:javascript
复制
<!DOCTYPE html> 
<html>
<head>
    <title>
        Popup Window Test
    </title>

    <script type="text/javascript">
        function showFirstChildWindow() {
            var pidWin = window.open("firstChild.html",'firstChild','width=600,height=475,screenX=200,screenY=300,top=220,left=200,titlebar=yes,resizable=yes');
            if (pidWin != null) {
                pidWin.focus();
            }
        }
    </script>

</head>

<body>

<p>
    <b>Main Window </b>
</p>

<a href="javascript:void(0)"  onclick="showFirstChildWindow();" > Nurse Patti </a>
</body>
</html>
  1. 第一个子窗口的html页面
  2. 第二个子窗口的html页面

复制步骤(我还关闭了Edge中的“弹出阻止程序”以简化测试):

  1. 请将上面的3 html放在同一个文件夹下。
  2. 第一个html页面是主窗口。请用边缘浏览器打开
  3. 点击“Patti护士”会弹出第一个孩子弹出窗口
  4. 最终用户点击第一个孩子弹出窗口中的“第二个孩子”按钮。然后第一个弹出式窗口关闭。打开第二个孩子弹出窗口。
  5. 点击“关闭”按钮或浏览器提供的-X按钮在第二弹出。它可能关闭,也可能不正常关闭。有时,这个第二个孩子变成了一个空白的孩子,只有“任务经理”才能杀死它。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-06 21:05:39

最后,我们采用了一种不同的方法--将那些物理弹出窗口重写为jQuery弹出窗口。感谢所有在这里帮忙的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37706897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档