【问题标题】:What are the differences between IE9’s IE8 emulation and honest-to-God IE8?IE9的IE8仿真和老实说的IE8有什么区别?
【发布时间】:2011-06-07 14:25:03
【问题描述】:

我遇到了一些图标在 XP 上的 IE8 中没有显示的问题,但是当我在 Win 7 上运行 IE9 并将文档和浏览器模式设置为 IE8 时,问题不会出现。

所以我想知道 IE8 仿真和真实交易之间的已知差异是什么。让我们听听他们的声音!

【问题讨论】:

  • IE8 对上帝从来不诚实,这就是为什么它被从浏览器天堂扔下来
  • 可能问题出在浏览器之外。如果您使用 Fiddler 或 Charles 检查请求,您会发现请求有什么不同吗?
  • @Ben 不是这样,见下文和我的链接测试用例!

标签: internet-explorer internet-explorer-8 internet-explorer-9 ie8-compatibility-mode


【解决方案1】:
  1. window.performance exists

  2. UA 包含令牌“Trident/5.0”而不是“Trident/4.0”。 Source.

  3. 根据Paul Irish:“IE9 的 IE8 模式:intermittently 内联 SVG 功能测试的误报。呈现 CSS 与真正的 IE8 不同,并且是 crashier 而不是真正的。”

  4. 真正的 IE8 不允许文本为 transparent,但 IE9 的仿真可以。 JSFiddle demo and screenshots.

  5. 在 IE9 的 IE8 模式下,您只能通过 color 设置不同的访问链接样式(这是一项隐私修复,可防止检查某个 URL 是否在您的浏览器历史记录中)。

  6. http://ajh.us/ie8-9

【讨论】:

    【解决方案2】:

    更多区别:

    1. 出于显而易见的原因,CSS 访问/链接隐私修复仍然适用于兼容模式。

    2. 不支持 HTML+TIME,因为它很少使用。

    【讨论】:

      【解决方案3】:

      当使用 JSON.stringify 序列化具有嵌套数组的对象时,IE8(至少是 Windows 7 上的 64 位版本)会随机失败,有时甚至完全崩溃,即:

      var someModel = {
          "pages": [{
              "fields": [{}]
          }]
      };
      

      这在 IE8 兼容模式下不会发生。这个 jsfiddle 示例使用了敲除(这是我第一次遇到它时的示例),但可以一直跟踪到 JSON.stringify http://jsfiddle.net/5LPSx/10/

      【讨论】:

        【解决方案4】:

        某些 javascript 行为是不同的。例如,JScript DontEnum bug 在 IE8 的 IE10 仿真中看起来是固定的。

        【讨论】:

          猜你喜欢
          • 2013-11-13
          • 1970-01-01
          • 2013-04-01
          • 1970-01-01
          • 2012-06-05
          • 1970-01-01
          • 2014-05-24
          • 2011-05-22
          • 2010-09-07
          相关资源
          最近更新 更多