Как отключить кнопку режима совместимости в 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>
Ответ 3
Вот ответ:
http://blogs.msdn.com/b/jonbox/archive/2011/03/27/removing-the-ie9-compatibility-button-and-html1115-warning.aspx
Измените порядок ваших метатег.
Ответ 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, и кнопка исчезнет.