如何在IE9中禁用兼容模式按钮?

时间:2011-07-30 08:16:42

标签: cross-browser internet-explorer-9 ie8-compatibility-mode x-ua-compatible

我无法在IE9中禁用IE兼容模式按钮。

我的头和doctype看起来像这样:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--[if lte IE 8]> 
  <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en" class="ie8">
 <![endif]-->
<!--[if IE 9]> 
  <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en" class="ie9">
<![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-en" xml:lang="en-en">
<!--<![endif]-->
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="description" content="meta content here" />
  </head>
  <body>
    <!-- page content here //-->
  </body>
</html>

如何在IE9中禁用兼容模式按钮?

我以为我做了我的研究。我应用了各种后备解决方案来显示从7到9及以上的每个IE中的所有内容。

客户端抱怨兼容模式,当激活时,它会弄乱布局。有没有办法禁用该按钮?

5 个答案:

答案 0 :(得分:18)

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

自2014年1月起谷歌停止使用Chrome框架,因此chrome = 1部分是   不需要

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

“边缘”强制IE中的标准模式(或最新渲染引擎),“chrome”适用于Chrome Frame。

此处提供更多信息:

答案 1 :(得分:5)

我在页面顶部使用条件注释来嵌入基于版本的ie类。 (例如:)

<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->

因此,即使我设置了X-UA-Compatible元标记,仍然会在IE中显示Compatability Mode按钮。

要修复,我必须将条件注释移到页面底部并使用JS来应用ie类。在查看我的网站时,IE中不再显示兼容性按钮。

<html lang="en">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=8; IE=9; IE=10; IE=EDGE; chrome=1">
  <head>
  <body>
     <!-- ..Other content... -->
  <script type="text/javascript">
   window.flagAsIE = function(version) {
     var cls = document.body.parentElement.getAttribute('class');
     document.body.parentElement.setAttribute('class', "ie ie" + version + " " + cls);
   };
  </script>

  <!--[if lt IE 7 ]><script type='text/javascript'>flagAsIE('6');</script><![endif]-->
  <!--[if IE 7 ]><script type='text/javascript'>flagAsIE('7');</script><![endif]-->
 </body>
</html>

答案 2 :(得分:4)

答案 3 :(得分:1)

我发现是导致按钮出现的条件注释。删除这些并使用功能检测来添加我的html类已经解决了这个问题。对X-UA-Compatible内容进行任何修改都不会删除该按钮。

我使用了这组has.js检测:

if (has("css-border-radius") && !has("input-attr-placeholder")) {
    html.className += ' ie9';
}

if (!has("css-border-radius") && !has("input-attr-placeholder")) {
    html.className += ' lt-ie9';
}

if (!has("css-box-sizing")) {
    html.className += ' ie7';
}

答案 4 :(得分:0)

问题是你的js代码中的某个地方你正在使用浏览器嗅探代码,如document.all,window.ActiveXObject,navigatror.userAgent,attachEvent,detachEvent等。

使用功能检测代码替换所有内容 jquery.support按钮将消失。