此问题仅发生在Edge中,但适用于IE11和Chrome。有办法解决这个问题吗?
window.open
)1st_child_window.opener.open
)window.close
或浏览器提供的按钮 - “X”按钮),它会间歇性地工作。很多时候它无法关闭并保持为空白弹出窗口。然后它只能被“任务管理器”杀死步骤2和步骤3的代码清单
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页面
<!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>
第一个子窗口的html页面
<!DOCTYPE html>
<html>
<head>
<title>
First child
</title>
<script type="text/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');
if (SecondChildScreen != null) {
SecondChildScreen.focus();
}
}
</script>
</head>
<body>
<p>
<b>First Child Popup Window </b>
</p>
第二个子窗口的html页面
<!DOCTYPE html>
<html>
<head>
<title>
Second child
</title>
<script type="text/javascript">
function doClose() {
window.close();
}
</script>
</head>
<body>
<p>
<b>Second Child Popup Window </b>
</p>
<input type="button" value="Close" onclick="doClose();" />
</body>
</html>
重现的步骤(我还关闭了Edge中的“弹出窗口拦截器”以使测试更容易):
请将3个html放在同一个文件夹下
第一个html页面是主窗口。请使用Edge浏览器
点击“护士帕蒂”将弹出第一个子弹出窗口
最终用户点击第一个子弹出窗口中的“第二个孩子”按钮。然后第一个弹出窗口关闭。第二个子弹出窗口打开
在第二个弹出窗口中单击“关闭”按钮或浏览器提供的X按钮。它可能会也可能不会正常关闭。有时这第二个孩子变成空白,只有“任务经理”可以杀死它。
答案 0 :(得分:0)
我们最终得到了一种不同的方法 - 即将这些物理弹出窗口重写为jQuery弹出窗口。感谢所有在这里提供帮助的人。