代码之家  ›  专栏  ›  技术社区  ›  Frank Schwieterman

确定页面在兼容模式下呈现的原因?

  •  7
  • Frank Schwieterman  · 技术社区  · 14 年前

    根据Microsoft的文档,以下条件可能导致页面以兼容模式呈现( http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

    • 已为该页启用兼容性视图。
    • 页面加载在Intranet区域中,Internet Explorer 8配置为“兼容性”视图中的Intranet区域中的页面。
    • Internet Explorer 8配置为在兼容性视图中显示所有网站。
    • Internet Explorer 8配置为使用兼容性视图列表,该列表指定一组始终显示在兼容性视图中的网站。
    • 开发人员工具用于重写网页中指定的设置。

    在检查了页面之后,我排除了第一种可能,这一定是页面上的页面布局错误。我想找出这个错误。

    2 回复  |  直到 14 年前
        1
  •  4
  •   Daniel    14 年前

    检查是否有任何<meta>标记迫使IE进入兼容模式。

    如果您希望,可以强制它呈现为IE8(完全符合CSS 2.1):

    <meta http-equiv="X-UA-Compatible" content="IE=8"/>
    
        2
  •  0
  •   TylerY86    9 年前

    假设您有一个ID compat警告的隐藏元素:

    $(function(){
        function showCompatWarning() {
            $('#compat-warning')
                .css('display','block')
                .css('height','auto')
                .show();
        }
        var tridentOffset = navigator.appVersion.indexOf('Trident/');
        if ( tridentOffset === -1 ) return;
        var jscriptVersion = 0;
        /*@cc_on @*/
        /*@if (@_jscript) jscriptVersion = @_jscript_version ; @*/;
        /*@end @*/
        var tridentVersion = parseInt(navigator.appVersion.substr(tridentOffset+8),10);
        var guessIEVersion = tridentVersion + 4;
        if (( document.documentMode && jscriptVersion && jscriptVersion < 10 && jscriptVersion !== document.documentMode ) ||
            ( document.compatMode && document.compatMode === 'BackCompat') ||
            ( document.documentMode && document.documentMode < 10 && document.documentMode != guessIEVersion ))
            showCompatWarning();
    });
    

    检测和警告,你的第一道和最后一道防线兼容地狱。

    推荐文章