在IE9模式下运行时,HTA变得不稳定

时间:2012-08-01 12:26:19

标签: internet-explorer-9 hta

我正在将我的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向他们寻求帮助......

1 个答案:

答案 0 :(得分:0)

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