【问题标题】:Force IE9 into browser compatibility view强制 IE9 进入浏览器兼容性视图
【发布时间】:2012-07-16 04:56:37
【问题描述】:

我知道如何强制 IE 在文档兼容性中查看页面,但是浏览器兼容性视图呢?

由于各种原因,我有一个项目仅在 IE9 处于浏览器兼容性视图时才有效,但我找不到任何有关如何强制 IE9 这样做的资源。

每个人都只谈论强制 document 兼容性,例如使用

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

但这在我的情况下不起作用,因为它只设置文档视图。是否也可以设置浏览器视图

PS:为了清楚起见,这是我需要强制执行的设置:

【问题讨论】:

    标签: html internet-explorer-9 compatibility quirks-mode


    【解决方案1】:

    我对所有 (7,8,9) 都有一个解决方案,即浏览器

    <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js" > </script>
    

    在 head 标签中使用这个 java 脚本。

    【讨论】:

    • 这些链接可能无效,因为 Google 代码 - 尤其是其中的直接链接 - 不能保证在 2016 年 1 月之后通过常规方法保持可用,具体请参见此处详述的“退休计划”:@987654321 @
    【解决方案2】:

    我已经尝试了 MSDN 文章 http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx 建议的各种方法,这些方法涉及强制 IE9 使用 X-UA-Compatible 标头模拟以前的版本以便正确显示。

    在我的例子中,测试是在使用默认标准模式而不是兼容模式的 IE9 浏览器中播放 MP4 视频文件。其他网站说 Internet Explorer 仅配置为播放 MP4 文件(而不是 ogg 和 webm 视频文件),所以我认为这是最安全的文件格式进行测试。

    我使用 IE9 模拟 IE8 标准和该页面的 IE7 标准视图测试了网页视图,在这两种情况下,旧标准视图都可以播放 MP4 视频文件。并且IE9兼容模式也播放了那个网页。但是我强迫 IE9 恢复到标准视图,以便测试一个代码,该代码可以为那些没有将自己的 IE9 浏览器配置为使用兼容模式的人播放视频。

    前面提到的那篇 MSDN 文章建议的方法似乎是针对这个问题的,但是在测试这些方法中的每一个时,它们都没有解决 IE9 浏览器播放 MP4 视频文件的问题。

    我的问题的解决方案来自这张 Stack Overflow 票:HTML5 Video not working only in IE9

    我实际上必须在网站上的 .htaccess 文件中添加以下几行:

    AddType video/ogg .ogv
    AddType video/mp4 .mp4
    AddType video/mp4 .mov
    AddType video/webm .webm
    

    然后,我还需要确保第一行代码使用了这个:

    <!DOCTYPE html>
    

    ... 而不是这个:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    

    我不需要使用任何“以前的版本”代码,例如:

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

    在我的测试页面上,我还使用了video-js 代码,我认为它可以解决 IE9 标准问题(就像其他 Web 浏览器一样)。它自己的代码似乎也输出了以下 X-UA-Compatible 代码:

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    

    但是,仅这些代码并不能解决问题。归根结底,我相信这是由于在 .htaccess 文件中添加了代码。

    【讨论】:

      【解决方案3】:

      MSDN documentation
      您应该使用 emulateIE7,因为兼容模式是 一种 IE7:

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

      编辑

      如果上述方法不起作用,other options 真的很差。
      引用上面的链接:

      • Microsoft 没有将该站点的域名列入黑名单。 (原文链接的黑名单很老,没有更新,你可以在电脑上找一个本地副本)
      • Intranet 管理员尚未将该站点列入黑名单。
      • 用户没有按下兼容性视图按钮 (duh)
      • 该站点不在 Intranet 区域中
      • 该页面不是由兼容模式页面构成的。

      以上是,AFAIK,兼容模式的唯一原因。
      除非您准备直接联系 Microsoft 以将您的网站添加到全局黑名单中,否则您无能为力(除非您想将您的网站包装在源自黑名单域的框架中)。

      【讨论】:

      • 我尝试了所有的文档兼容模式,但这对页面存在的问题没有影响。它实际上仅在浏览器模式明确设置为兼容性视图时才有效。
      • @FlorianPeschka 我添加了所有触发兼容模式的已知因素:它们绝对不容易实现,我认为没有人真的想故意使用它们,但它们确实有效。跨度>
      • 好的。我希望我可以避免调试应用程序,但在这种情况下,我想这是唯一的选择。不过感谢您的努力。
      • 该页面上的 MSDN 文档已更改。 msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx 现在可能更适用。
      猜你喜欢
      • 1970-01-01
      • 2013-06-02
      • 2013-10-01
      • 2012-03-03
      • 2013-03-23
      • 1970-01-01
      • 2012-07-30
      • 2013-07-14
      • 1970-01-01
      相关资源
      最近更新 更多