我正在将一些旧的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时也是如此。
答案 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中的任何新功能。