【发布时间】:2016-04-26 16:09:13
【问题描述】:
在我的 HTA 应用程序中,我使用 JavaScript 日历窗口,当用户单击其中一个日期时,它使用 window.open() 打开并使用 window.close() 关闭。此日历可在 10 多年的多个浏览器和版本上正常运行。它甚至大部分时间都可以在 HTA 应用程序中使用。
但是在运行 IE11 的特定工作站上。 window.close() 命令被简单地忽略,导致窗口保持打开状态。在其他 IE11 工作站上它工作正常。我认为关闭 IE11、Internet 选项、安全选项卡上的“启用保护模式”复选框可以解决其中一个有问题的工作站上的问题。但是,其他工作站在启用此设置的情况下工作正常,关闭此设置不是可接受的解决方案。
重现问题的代码示例:
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();
}
【问题讨论】:
标签: javascript html window internet-explorer-11 hta