如何获得HTA打开的对话框的IE9标准支持?

时间:2012-07-30 18:56:35

标签: internet-explorer modal-dialog hta

我正在将一些旧的HTA从Quirks翻译成IE9标准。但是,似乎HTA打开的模态和无模式对话框不支持IE9标准模式。

测试对话框:

<!DOCTYPE html>
<html>
<head>
<title>TestDialog</title>
<meta http-equiv="x-ua-compatible" content="ie=9" />
</head>
<body>
<svg>
    <circle cx="100" cy="100" r="50" fill="#0f0" />
</svg>
</body>
</html>

在HTA主页中:

<button onclick="showModalDialog(...)">Modal</button>
<button onclick="showModelessDialog(...)">Modeless</button>

从HTA打开TestDialog时,它是空的。如果主页面是常规html文档,则对话框中将出现绿色圆圈。从HTA打开时,如果对话框文件本身是htm或hta,则没有区别。

我也测试了addEventListener(),但它也不适用于对话框。

那么,从HTA打开时,我可以“强制”对话以支持IE9标准吗?


修改

似乎从HTA打开的模态和无模式对话框在IE8的级别上。在Windows7中使用IE10时也是如此。

1 个答案:

答案 0 :(得分:1)

此问题中关键字的快速Google在Microsoft MSDN网站上向我提供了此页面:http://msdn.microsoft.com/en-us/subscriptions/ms536496(v=vs.85).aspx

您的问题的答案在页面上。答案是在HTML的x-ua-compatible部分添加<head>元标记。

引用:

  

默认情况下,HTA在兼容性视图中显示网页,在IE7标准模式下显示标准模式内容,在IE5(Quirks)模式下显示模式内容。要利用当前版本的Internet Explorer可用的功能,请使用元元素为HTA定义X-UA兼容标头

标签看起来像这样:

<meta http-equiv="x-ua-compatible" content="ie=9">

以上是根据MSDN网站。事实上,我建议使用content="ie=edge"比指定IE9模式更好。否则,当您升级到IE10时,您将失去IE10中的任何新功能。