59

Есть ли способ заставить IE8 работать в режиме совместимости IE7 с использованием .NET или Javascript?Force IE8 В режиме совместимости IE7

+1

Также, могу ли я выполнить это с помощью настроек IIS? – Bryan

+10

Думаю, я мог видеть значение в этом для старых страниц, но ПОЖАЛУЙСТА, не создавайте новые страницы, зависящие от IE7 ... пусть зверь умирает. –

+0

IE8 имеет ошибки, которые IE7 не имеет и которые исчезают при переключении в режим совместимости: http://stackoverflow.com/questions/1070178/why-does-ie8-add-bottom-border-on-my-image- anchor-tag На мой сайт влияет эта ошибка, и я бы предпочел сказать IE8 правильно отобразить его, как IE7, и каждый другой браузер, добавив одну строку в мой файл .htaccess, чем добавить связанный с браузером обходной путь к моему фактические страницы. –

ответ

85

Если добавить это мета-теги:

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

IE8 будет отобразить страницу как IE7.

+22

Вы правы - но постарайтесь добавить его сразу после открытия тега . У меня были проблемы, когда он был дальше по странице. –

+1

Что делать, если я не добавлю эту строку на каждую страницу aspx на моем сайте. Могу ли я сделать это с помощью IIS? – Bryan

+5

@Bryan: Нет. Поэтому мы используем мастер-страницы. – NotMe

5

его еще проще. Использование HTML, вы можете просто добавить метатекла на страницу (первая вещь на странице):

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

Если вы хотите сделать это using.net, вы просто должны отправить запрос HTTP с этой метаинформацией в заголовок. Это потребует обновления страницы для работы.

Кроме того, вы можете посмотреть на подобный вопрос здесь: Compatibility Mode in IE8 using VBScript

11

Существует an HTTP header вы можете установить, что заставит IE8 использовать режим IE7-совместимости.

+1

Я не мог заставить метатег работать, но добавление этого заголовка выполняло эту работу. Благодаря! – swatkins

1

примечание к этому:

IE 8.0s эмуляция только обещает отобразить страницу то же самое. Существуют тонкие различия, которые могут привести к разрыву функциональности. У меня недавно была проблема только с этим. В тех случаях, когда IE 7.0 использует функцию обертки javascript под названием «anonymous()» в IE 8.0, оболочка была названа по-разному.

Так что не ожидайте, что такие вещи, как JavaScript, просто работают, потому что вы включаете эмуляцию.

+5

Написание кода, который зависит от «имени» анонимной функции, не является надежной зависимостью, независимо от версии браузера. – EricLaw

5

больше, если вы хотите переключиться IE 8 страница визуализации в IE 8 стандартном режиме

<meta http-equiv="X-UA-Compatible" content="IE=100" /> <!-- IE8 mode --> 
30

Вы можете сделать это в web.config

<httpProtocol> 
     <customHeaders> 
      <add name="X-UA-Compatible" value="IE=7"/> 
     </customHeaders> 
    </httpProtocol> 

У меня есть лучшие результаты с этим в течение одного вышеупомянутые решения. Не знаю, почему это не было дано как решение. :)

+0

+1 Хорошее решение, если вы используете IIS7 - http://www.iis.net/ConfigReference/system.webServer/httpProtocol –

+0

Отличное решение, если вы не можете изменить содержимое страницы или напрямую изменить заголовки страниц , –

+0

Я думаю, что HTTP-заголовки переопределяют любые метатеги, поэтому они должны быть предпочтительным решением, если у вас есть опция. – Matthew

1

Это может быть сделано в IIS: http://weblogs.asp.net/joelvarty/archive/2009/03/23/force-ie7-compatibility-mode-in-ie8-with-iis-settings.aspx

Прочитайте комментарии, а также: Среда, 01 апреля 2009 8:57 Джон Мур

быстрый наблюдения. Это отлично работало для моего сайта, пока я использую значение IE = EmulateIE7. Попытка использовать IE = 7 привела к тому, что мой сайт существенно зависал при работе в IE8.

0

мой код имеет этот тег

META HTTP-эквив = "X-UA-Compatible" содержание = "IE = 7" />

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