Di IE pada Windows 10 dengan pengaturan default, jika saya melakukan window.open()
terhadap situs internet eksternal dari halaman di mesin lokal saya atau server di jaringan lokal saya, saya mendapatkan null
.
Lihat repro saya di bawah. Ini tidak terjadi di IE pada Windows 7 atau Google Chrome.
Menariknya, jika saya mengaktifkan "Enable Protected Mode" untuk Intranet Zone (agar Protected Mode sama di Intranet Zone dan Internet Zone), maka masalahnya akan hilang. Namun, saya ingin ini berfungsi tanpa mengharuskan pengguna melakukan ini.
Saya belum menemukan dokumentasi Microsoft yang jelas yang menjelaskan perilaku ini. Saya mengangkat masalah tentang masalah EdgeHTML ini situs, tetapi ingin melihat apakah komunitas di SO mempunyai pemahaman mengapa hal ini terjadi.
Terima kasih!
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<script>
var popupWindow = null;
function openWindow() {
popupWindow = window.open('http://microsoft.com', '_blank', 'left=100;top=100;height=100;width=100');
}
function checkWindowStatus() {
if (popupWindow) {
document.getElementById('status').innerHTML += '- Truthy reference. Closed? ' + popupWindow.closed + '</br>';
} else {
document.getElementById('status').innerHTML += '- Falsy reference: ' + popupWindow + '</br>';
}
}
</script>
</head>
<body>
<h2>Popup Issue</h2>
<button onclick="openWindow()">Open Window</button>
<button onclick="checkWindowStatus()">Check Window Status</button>
<button onclick="popupWindow.close()">Close Window</button>
<p id="status"></p>
</body>
</html>