Как отключить кнопку режима совместимости в IE9?

Я не могу отключить кнопку режима совместимости IE в IE9.

Моя голова и 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?

Я думал, что сделал свое исследование. Я применил все виды резервного решения, чтобы отображать все в каждом IE с 7 до 9 и выше.

Клиент жалуется на режим совместимости, который при активации активирует макет. Есть ли способ отключить эту кнопку?

Ответ 1

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

Фрейм Chrome с января 2014 года прекращен Google, поэтому хром = 1 часть не требуется

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

"Край" заставляет режим стандартов (или последний движок рендеринга) в IE, а "хром" - для Chrome Frame.

Дополнительная информация доступна здесь:

Ответ 2

Я использовал условные комментарии в верхней части страницы, чтобы внедрить класс ie на основе версии. (Например:)

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

В результате, хотя я устанавливал метатег X-UA-Compatible, кнопка "Режим совместимости" все еще показывалась в IE.

Чтобы исправить, мне пришлось переместить условные комментарии в нижней части страницы и использовать 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>

Ответ 4

Я обнаружил, что это были условные комментарии, вызывающие появление кнопки. Удаление этих и использование обнаружения функции вместо добавления моих классов 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';
}

Ответ 5

Проблема в том, что где-то в вашем js-коде вы используете код для браузера, например document.all, window.ActiveXObject, navigatror.userAgent, attachEvent, detachEvent и т.д.

Замените все на код обнаружения функции, используя jquery.support, и кнопка исчезнет.