В моем приложении HTA я использую окно календаря JavaScript, оно открывается с помощью window.open() и закрывается с помощью window.close(), когда пользователь нажимает на один из даты. Этот календарь отлично работает в нескольких браузерах и версиях более 10 лет. Он работает даже в приложениях HTA большую часть времени.window.close не закрывающее окно в приложении HTA
Однако на конкретных рабочих станциях работает IE11. Команда window.close() просто игнорируется, в результате окно остается открытым. На других рабочих станциях IE11 он работает нормально. Я решил, что при отключении флажка «Включить защищенный режим» на вкладке «Свойства обозревателя» IE11 «Безопасность» устранена проблема на одной из проблемных рабочих станций. Тем не менее, другие рабочие станции прекрасно работают с включенной настройкой и отключением этой настройки не является приемлемым решением.
образецкод, который воспроизводит проблему:
приложения HTA
<HTML>
<HEAD>
<HTA:APPLICATION ID="OpenCloseExample" BORDER="thick" BORDERSTYLE="complex"/>
<TITLE>Open Close HTA container</TITLE>
</HEAD>
<iframe width="1024px" height="768px" src="http://localhost:28080/openclose.html"/>
</HTML>
openclose.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Main Page</title>
<script src="openclose.js"></script>
</head>
<body>
<a href="#" onclick="openWindow();">open</a>
</body>
</html>
openclose.js
var win;
function openWindow() {
win = window.open("", "_blank", 'width=250,height=250,status=no,resizable=no,location=no,top=100,left=100');
win.document.writeln("<html><head><script src='openclose.js'></script></head><a href='#' onclick='javascript:window.opener.closeWindow()'>close</a></html>");
}
function closeWindow() {
win.window.close();
}
Мой сценарий отлично работает в IE нет необходимости экранировать символ «/», насколько я могу судить. Во всяком случае, это всего лишь образец кода, который воспроизводит проблему, и этот код намного сложнее. – lyaffe
Уже выяснилось, что это связано с тем, что он работает как обычный пользователь, который страдает от проблемы с администратором, которая работает нормально. Необходимо выяснить, какие конкретные настройки вызывают поведение. – lyaffe