3

我正在将我的一些旧 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 时也会发生这种情况。

4

1 回答 1

2

这个问题中的关键字的快速谷歌给了我微软 MSDN 网站上的这个页面:http: //msdn.microsoft.com/en-us/subscriptions/ms536496 (v=vs.85).aspx

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

去引用:

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

标签看起来像这样:

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

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

于 2012-07-30T19:14:33.093 回答