0
此問題只發生在Edge中,但適用於IE11和Chrome。有沒有辦法解決這個問題?彈出窗口在Edge瀏覽器中彈出多個彈出窗口時關閉問題
- 主窗口打開第一個孩子的窗口(使用Javascript
window.open
當最終用戶單擊主窗口中的鏈接) - 然後,當最終用戶點擊了第一個孩子窗口中的按鈕,JS就會關閉此1子窗口。
- 然後JS碼具有在主窗口經由JS代碼打開一個第二子窗口(
1st_child_window.opener.open
) - 如果最終用戶嘗試關閉該第二子窗口(或者一個按鈕調用JS
window.close
或瀏覽器的設置─「X」 - 按鈕)它間歇性地工作。很多時候它不能被關閉並保持爲空白彈出窗口。然後它只能被「任務管理器」殺死 - 如果步驟#2被註釋掉了(也就是說,打開第一個子窗口),步驟#4可以正常工作(即第二個子窗口可以正常關閉)
代碼爲步驟#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>
對於第一子窗口
<!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頁面的第二子窗口的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>
請把以上3 HTML的文件夾
下第一個html頁面是主窗口。請邊瀏覽器
點擊「護士帕蒂」打開它會彈出第一個孩子的彈出窗口
最終用戶點擊「第二個孩子」按鈕,在第一個孩子的彈出窗口。然後第一個彈出窗口關閉。第二個子彈出窗口打開
在第二個彈出窗口中單擊「關閉」按鈕或瀏覽器提供的X按鈕。它可能會或可能不會正常關閉。有時候這個第二個孩子變成空白的,只有「任務管理器」可以殺死它。
步驟來重現(我也關閉在邊緣的「彈出窗口阻止程序」,以使測試更加簡單):
我想你可能需要問微軟 - Edge似乎仍然包含一些奇怪的異常,事實上,甚至有時甚至不工作。 –
謝謝。是的,我也在microsoft msdn上發佈了這個問題。希望他們會回來。再次感謝! – riceball
好 - 我在一年前有類似的問題 - 在現有窗口後面打開窗戶。我認爲他們已經排序了這些問題,但也許不是 - 它仍然是一個非常新的瀏覽器... –