1

我正在将我的 HTA 应用程序转换为 IE9 模式。

为了实现这一点,我将我的 doc-type 设置为 stict 并添加了所需的元标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
...
<meta http-equiv="X-UA-Compatible" content="IE=9">

出于某种原因,我的应用程序现在非常频繁地崩溃。如果我删除元标记,问题就会消失。

由于我没有 mshta.exe 的源代码,所以 hta 会抛出这个不合理的 execption 调试是无用的:

Problem signature:
  Problem Event Name: APPCRASH
  Application Name:   mshta.exe
  Application Version:    9.0.8112.16421
  Application Timestamp:  4d76250b
  Fault Module Name:  mshtml.dll
  Fault Module Version:   9.0.8112.16447
  Fault Module Timestamp: 4fc9d776
  Exception Code: c0000005
  Exception Offset:   0042e4fc
  OS Version: 6.1.7601.2.1.0.256.48
  Locale ID:  1043
  Additional Information 1:   4730
  Additional Information 2:   4730254975cd5e69c9f98e6774a147ea
  Additional Information 3:   7e68
  Additional Information 4:   7e68196790120254f61ecb0212b4aa5b

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\Windows\system32\en-US\erofflps.txt

我该转向哪里?我很想说这是由某种错误引起的。如果我的代码做了一些非法的事情,HTA 应该抛出一个脚本错误,而不是这个意外的异常。但由于某种原因,我不希望能够打电话给 MS 向他们寻求帮助......

4

1 回答 1

0

<meta http-equiv="X-UA-Compatible" content="IE=9">标记仅在仍然使用 HTML5 的非常简单的 HTA 中有用。一旦你添加一个框架、一个<hta:application>标签,它就会给你带来问题。尝试带走!DOCTYPEPUBLIC="..."以便 HTML-tag 是简单的<html>. 如果您仍然有问题,您可能在正文中有一些不适用于<meta http-equiv="X-UA-Compatible" content="IE=9">标签的内容。我知道这很烦人,我的 HTA 上有相同的探针并且无法使用 HTML5accept属性(请参阅此处,没有我的框架和我的<hta:application>属性被忽略。尝试删除<meta http-equiv="X-UA-Compatible" content="IE=9">标签或将其更改为<meta http-equiv="X-UA-Compatible" content="IE=8">.

于 2015-01-11T15:23:39.040 回答