gpt4 book ai didi

javascript - IE10 开发工具如何报告兼容性 View ?

转载 作者:行者123 更新时间:2023-11-30 10:11:42 25 4
gpt4 key购买 nike

我维护着一个遗留的 Web 应用程序,它有很多旧的怪癖模式页面和很多较新的标准模式页面。

在 IE10 中,如果我们的域名在 IE 兼容列表中,我会收到来自 IE 的混合消息。

  • 开发工具报告页面处于浏览器模式 IE10 兼容 View 。
  • 页面的外观表明它处于标准模式。
  • userAgent 说它是 MSIE 10.0,Trident/6.0(建议不兼容 View )

如果我将开发工具中的浏览器模式从 IE10 Compat View 更改为 IE10,然后再回到 Compat View,我得到:

  • 开发工具报告页面在 IE10 兼容 View 中(和以前一样)
  • 页面的外观表明它处于兼容 View 中。
  • userAgent 说它是 MSIE 7.0,Trident/6.0(建议它在兼容 View 中)

IE10 开发工具有时会误导浏览器模式吗?例如,根据兼容性列表或其他标准猜测模式,当页面实际上由于文档类型和 X-UA-Compatible 设置为 IE=edge 而进入标准模式时?

或者 documentMode 和 userAgent 是否不能可靠地测试我们所处的模式?

基本上,如果我们检测到用户处于那种模式,我们想告诉用户“嘿,您不需要再将我们的网站放入您的兼容性 View 列表中”。

最佳答案

测试 User-Agent 字符串足以确定页面是否处于兼容性 View 模式。如果 UA 字符串是 MSIE 10.0, Trident/6.0 ,您可以相信该页面处于 IE 10 标准模式。因此,在第一种情况下,我不相信开发人员工具报告的“浏览器模式:IE10 兼容 View ”,因为您对建议标准模式的页面外观的观察证实了这一点。

对于您的情况,如果这是请求中的 UA 字符串,则意味着不遵守兼容性 View 设置列表。浏览器模式和 UA 字符串是在发出请求之前生成的,因此它们不受 X-UA-Compatible 的影响。标签或 doctype从回应。无论出于何种原因,IE10 似乎都没有遵守您域的“兼容性 View 设置”列表中的条目。这是该过程的说明 from MSDN :

Browser Mode/Document Mode System Overview illustration
(来源:microsoft.com)

据我所知,您可以依靠用户代理字符串来确定何时通知您的访问者他们可以从他们的兼容性 View 设置列表中删除您的网站(或取消选择兼容性 View 按钮).具体来说,如果字符串是 MSIE 7.0, Trident/6.0 , 浏览器模式为 Internet Explorer 7 和 Trident/6.0 指示的浏览器, 是 IE10。

有一个really good blog post来自 MSDN(上图的来源)关于 IE9,详细介绍了浏览器模式与文档模式,并指定了浏览器和 UA 字符串在这些不同情况下的行为。不幸的是,我没有找到关于 IE10 的类似详细信息,但我猜测/希望行为是相似的。

最后一点:当你说网络应用程序有很多旧的怪癖页面时,我担心文档模式(怪癖)和浏览器模式(兼容性 View )之间的混淆。我猜这不是您问题的一部分,但由于这种区别过去曾让我感到困惑,所以我只想在这里提及它。

关于javascript - IE10 开发工具如何报告兼容性 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26261891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com