4

我正在 Windows Vista 上的 Internet Explorer 8 中测试一个相当复杂的基于 Javascript 的 Web 应用程序。加载应用程序后,IE 处于“标准”浏览器模式和“IE 8 标准”文档模式。在应用程序运行时,IE 有时会重新加载页面并显示一条消息,例如“(URL)的显示问题导致 Internet Explorer 在兼容性视图中重新加载页面”(不是确切的消息,我在Vista 的非英语版本)。重新加载后,浏览器处于 Quirks 模式。

由于无法可靠地重现或缩小问题,因此调试 Javascript 代码一直是徒劳的,因此我希望能深入了解可能导致此行为的原因。

4

3 回答 3

2

您通过 提供/创建的标记一定有问题innerHTML。这是 IE 团队的一篇文章,其中包含IE 从标记中自动恢复的详细信息,在 IE8-standards-mode 中无法正确解析:

...在新的布局引擎中有特定的代码路径,如果发生错误,布局过程将无法正常恢复,我们一直围绕这些路径进行断言...我们在发布的版本中进一步完善了这种体验IE8 通过使用兼容性视图恢复布局“硬断言”。换句话说,我们相信以 IE7 的方式显示页面会比不显示任何内容提供更好的用户体验。

请注意, usinginnerHTML会调用 HTML 解析器,因此即使在页面加载后,如果输入一个它无法生成头部或尾部的 HTML 字符串,它也可能会触发此问题。

于 2009-09-18T15:40:34.087 回答
1

在这里检查..

基本上。每页,您可以添加一个元标记

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

或者,在站点范围内将其添加到标题中:

X-UA-Compatible: IE=EmulateIE7
于 2009-09-18T14:51:39.867 回答
1

听起来像是在渲染器本身中发生的自动崩溃恢复。这是 IE 本身而不是脚本中的错误,因此调试确实会很困难。

所有 IE8 安装都会发生这种情况吗?IE8 是否更新了最新补丁?(会不会是不可靠的第三方扩展?)

于 2009-09-18T14:59:29.577 回答