Подтвердить что ты не робот

Как предотвратить IE9 от рендеринга сайтов интрасети в режиме совместимости

IE9 имеет странную проблему, когда он делает сайты интрасети в режиме совместимости.

Кто-нибудь знает, как предотвратить это?

Примечание. Я не ищу способ предотвратить его на одном компьютере пользователя, но некоторый программный способ предотвратить создание сайта в режиме совместимости.

4b9b3361

Ответ 1

После исчерпывающего поиска я узнал, как успешно предотвратить создание сайта интрасети в режиме совместимости в IE9 на этом блоге:

Из блога Tesmond

В IE9 есть 2 quirks, которые могут привести к тому, что режим совместимости останется в силе. Мета-элемент, совместимый с X-UA, должен быть первым мета-элементом в разделе главы. Вы не можете иметь условные инструкции IE перед мета-элементом X-UA-Compatible. Это означает, что если вы используете замечательный HTML-Boilerplate Paul Irish, а затем в Интранете с настройками IE9 по умолчанию ваш сайт будет отображаться в режиме совместимости. Вам нужно изменить начало шаблона следующим образом: -

<!doctype html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

в

<!doctype html>
<html class="no-js" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta charset="utf-8">

Ответ 2

Следуя ответу @novicePrgrmr, кажется, что обходной путь для IE9 загружает интрасети в IE7-режиме. Хотя это все еще вызывает режим совместимости, я обнаружил небольшую модификацию Paul Irish HTML5-шаблонная разметка, по крайней мере, позволяет IE9 отображать Intranets в стандартах IE9:

<!doctype html>
<html class="no-js" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta charset="utf-8">
</head>
<!--[if lt IE 7]>   <body class="home lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>      <body class="home lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>      <body class="home lt-ie9"> <![endif]-->
<!--[if IE 9]>      <body class="home lt-ie10"><![endif]-->
<!--[if gt IE 9]><!--> <body class="home"> <!--<![endif]-->

    <p>content</p>

</body>
</html>

Это по-прежнему действительный HTML, и существующий CSS, специфичный для IE, должен по-прежнему работать нормально, если вы нацеливаете IE, используя .lt-ie, а не html.lt-ie.

Ответ 3

Это можно сделать, добавив простой метатег

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

Еще один способ сделать это - добавить этот код в ваш .htaccess файл!

# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------

# Force the latest IE version, in various cases when it may fall back to IE7 mode
#  github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it installed for a better experience for the poor IE folk

<IfModule mod_headers.c>
  Header set X-UA-Compatible "IE=Edge,chrome=1"
  # mod_headers can't match by content-type, but we don't want to send this header on *everything*...
  <FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
    Header unset X-UA-Compatible
  </FilesMatch>
</IfModule>

Ответ 4

Если вы можете добавить код на домашнюю страницу, вы можете просто добавить это:

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

к заголовку вашего веб-сайта.

(Вы также можете использовать <meta http-equiv="X-UA-Compatible" content="IE=9">, чтобы заставить IE9-Renderer) Это заставит IE9 отображать в стандартном режиме.

Другой способ - использовать другой тип doctype: Поместите это в начало своего кода:

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