ใน IE บน Windows 10 ที่มีการตั้งค่าเริ่มต้น หากฉันดำเนินการ window.open()
กับไซต์อินเทอร์เน็ตภายนอกจากเพจบนเครื่องของฉันหรือเซิร์ฟเวอร์บนเครือข่ายท้องถิ่นของฉัน ฉันจะได้รับ null
ดูการทำซ้ำของฉันด้านล่าง สิ่งนี้จะไม่เกิดขึ้นใน IE บน Windows 7 หรือ Google Chrome
ที่น่าสนใจคือ ถ้าฉันเปิด "เปิดใช้งานโหมดที่ได้รับการป้องกัน" สำหรับโซนอินทราเน็ต (เพื่อให้โหมดที่ได้รับการป้องกันเหมือนกันในโซนอินทราเน็ตและโซนอินเทอร์เน็ต) ปัญหาก็จะหายไป อย่างไรก็ตาม ฉันต้องการให้สิ่งนี้ทำงานโดยไม่ต้องให้ผู้ใช้ทำเช่นนี้
ฉันไม่พบเอกสาร Microsoft ที่ชัดเจนที่อธิบายพฤติกรรมนี้ ฉันแจ้งปัญหาเกี่ยวกับเรื่องนี้เกี่ยวกับปัญหา EdgeHTML แต่ต้องการดูว่าชุมชนใน SO มีความเข้าใจว่าทำไมสิ่งนี้ถึงเกิดขึ้นหรือไม่
ขอบคุณ!
<!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>