Javascript如何使IE 8在兼容性视图中重新加载页面?

Javascript如何使IE 8在兼容性视图中重新加载页面?,javascript,internet-explorer-8,quirks-mode,Javascript,Internet Explorer 8,Quirks Mode,我正在WindowsVista上的InternetExplorer8中测试一个相当复杂的基于Javascript的web应用程序。加载应用程序后,IE处于“标准”浏览器模式和“IE 8标准”文档模式。当应用程序运行时,IE有时会重新加载页面并显示一条消息,如“显示问题(URL)导致Internet Explorer在兼容性视图中重新加载页面”(不是确切的消息,我使用的是非英语版本的Vista)。重新加载后,浏览器处于“怪癖”模式 调试Javascript代码是徒劳的,因为无法可靠地再现或缩小问题

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

调试Javascript代码是徒劳的,因为无法可靠地再现或缩小问题范围,因此我希望能够深入了解导致这种行为的原因。

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

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
听起来像是在渲染器本身中发生的。这是IE本身的一个缺陷,而不是你的脚本,所以调试确实很困难


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

您通过
innerHTML提供/创建的标记肯定有问题。以下是IE团队的一篇文章,其中包括在IE8标准模式下无法正确解析的标记:

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


请注意,使用
innerHTML
会调用HTML解析器,因此即使在加载页面后,如果向页面提供了一个无法理解的HTML字符串,也可能会触发此问题。

听起来很糟糕。IE有javascript调试工具-你安装了吗?他们有任何错误/问题吗?很好,这正是我一直在寻找的信息。我的应用程序确实动态创建了很多HTML,所以现在我知道从哪里开始调试了。谢谢
X-UA-Compatible: IE=EmulateIE7