在我的HTA应用程序中,我使用的是JavaScript日历窗口,当用户点击其中一个日期时,它会使用window.open()打开并使用window.close()关闭。 10多年来,这个日历适用于多种浏览器和版本。它甚至可以在大多数时间用于HTA应用程序。
但是在运行IE11的特定工作站上。只是忽略window.close()命令,导致窗口保持打开状态。在其他IE11工作站上它工作正常。我认为关闭IE11上的“启用保护模式”复选框,“Internet选项”,“安全”选项卡可以解决其中一个有问题的工作站上的问题。但是,其他工作站在此设置打开时工作正常,关闭此设置是不可接受的解决方案。
重现问题的代码示例:
HTA申请
this.selectedCategory.subscribe(function(newVal) {
if (newVal != undefined) {
var newValue = jQuery.extend(true, {}, newVal);
that.newObjectToSave(newValue);
// newObjectToSave().ecomCategories = [];
}
});
openclose.html
myData[i]=parseFloat(attr);
openclose.js
CALayer
答案 0 :(得分:1)
我无法通过任何设置在任何IE中看到此功能。问题是这个字符串:<script src='openclose.js'></script>
。也就是说,当 HTML解析器找到它时,字符串中的文字结尾脚本标记将作为页面上的结束脚本标记。这意味着,您的脚本从未加载过。
要解决此问题,您必须打破文字标记,例如:
<script src='openclose.js'><\/script>
答案 1 :(得分:1)
我最终想到了这一点。 改变:
<a href="#" onclick="openWindow();">open</a>
为:
<a href="javascript:openWindow()">open</a>
已解决问题
答案 2 :(得分:0)
由于您已经指出IE11导致JS无法正常工作,因此您可以非常轻松地强制IE在旧版本中呈现。
<meta http-equiv="X-UA-Compatible" content="IE=9">
这个元标记在HTA应用程序中非常流行,用于在特定的IE版本中使用JS / ActiveX方法/属性(大部分都被弃用)。
有关详细信息,请访问X-UA-Compatible Tag Wiki
希望这有帮助