我正在将我的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向他们寻求帮助......
答案 0 :(得分:0)
<meta http-equiv="X-UA-Compatible" content="IE=9">
标记仅适用于仍使用HTML5的非常简单的HTA。只要添加一个<hta:application>
标记的框架,它就会给您带来问题。请尝试删除!DOCTYPE
和PUBLIC="..."
,以便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">
。