IE 11 中的不完整 HTML

Posted

技术标签:

【中文标题】IE 11 中的不完整 HTML【英文标题】:Incomplete HTML in IE 11 【发布时间】:2014-02-07 02:37:30 【问题描述】:

我正在开发的网站不能在 IE 11 中呈现,但在其他所有浏览器中都可以正常工作。

当我使用 F12 开发人员工具对其进行调试时,除了标题部分之外,DOM 基本上是空的。我查看源代码时,只返回header部分和部分导航。

但是,当我在Compatibility View settings 下添加网站时,页面会正确呈现,但随后causes other problems。

我想解决根本问题,而不是要求用户添加到兼容模式或必须设置 x-ua 兼容的标头标签。

我想不出是什么导致它只有一部分从服务器发送的 html。当我“查看源代码”时,它不像是在解析 HTML 以创建 DOM 或运行任何 javascript。它只是假设显示服务器发送下来的 HTML。

【问题讨论】:

我的猜测是您的 HTML 中有语法错误。 IE10+ 似乎有点报复心,就好像恨了这么久一样在打我们所有人的脸。它放弃了对 HTML 我在基于搜索的 SharePoint 网站上看到了同样的问题。在提琴手中查看它们,您会看到没有返回任何内容,因此它不仅仅是渲染。我的想法是它可能严格防止 Javascript 错误等。 无法查看您的标记,我想知道我们应该如何推断出解决方案?不过,我猜想和艾舍伍德一样。您是否尝试过通过检查 HTML Tidy 的服务(如 dirtymarkup.com)来验证标记? 我可以理解语法错误会如何导致 DOM 出现问题。但是,即使我查看不解析 HTML 的源代码,我也只能获得部分 HTML(来自服务器) 您是否使用过fiddler 之类的工具来查看返回给客户端的内容? 【参考方案1】:

我在 IE 11.0.9600 中遇到了同样的问题。并弄清楚如果在兼容性视图中加载了网页,则数据不完整。但是,如果它不在兼容性视图中(设置/兼容性视图设置,删除域),问题就解决了,我所有的 $().find() 都可以正常工作。

【讨论】:

【参考方案2】:

经过进一步调试,我能够确定在 IE 11 上发出的请求返回的内容类型设置为 application/xhtml+xml instead of text/html

追查此问题的原因lead me to the culprit:App_Browsers 中的mobile.browser 文件

删除此文件后,我的请求现在返回正确的content-type,并且 IE 11 能够毫无问题地呈现页面。

希望这对其他人有所帮助。

【讨论】:

以上是关于IE 11 中的不完整 HTML的主要内容,如果未能解决你的问题,请参考以下文章

IE8 中的不透明度取决于位置:相对

IE8 中的不透明度不起作用

animate() 不适用于 IE 中的不透明度

使用 Javascript onkeyup() 更改 IE8 中的不透明度(再次)

Google Colab 中的不完整图表

IE8 中的不透明度适用于 <p> 但不适用于 <a>