2013-03-27 5 views
2

У меня возникли проблемы с настройкой режима совместимости IE на веб-сайте и различных подключенных веб-приложениях, и после долгих исследований по этому вопросу я все еще немного смущен относительно того, как это работает. В основном я работаю на веб-сайте компании, у которого возникают проблемы при доступе через IE10, и я пытаюсь настроить его для запуска в режиме совместимости с IE9. Существует много сторонних элементов управления и других элементов сайта, которые не работают на IE10, и у меня нет времени, чтобы полностью обновить этот сайт (это довольно большой сайт). Все, что я нашел, сказал мне установить режим совместимости, добавив код в файл веб-конфигурации или в метатег в заголовке. Кажется, достаточно легко.Проблемы с режимом совместимости IE

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

или

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

Теперь, когда я установил режим совместимости вручную (не в коде, но в моем браузере) все работает отлично, и это то, что я вижу, с помощью инструментов разработчика IE.

Browser Mode: IE10 Compat View Document Mode: IE9 Standards 

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

Browser Mode: IE10 Document Mode: IE9 Standards 

Обратите внимание, что здесь действует только режим документа, в отличие от того, когда я вношу изменения вручную. Как уже упоминалось, я провел много исследований по этому вопросу и до сих пор не совсем понимаю разницу между режимом браузера и режимом документа или почему тот, который мне кажется необходимо изменить, не зависит от решения, которое все, кажется, рекомендуют здесь. Может ли кто-нибудь помочь мне понять, что это значит и в чем дело, и что еще более важно, кто-нибудь знает, как делать то, что я пытаюсь сделать здесь?

+0

Hi awhitehouse, у меня также есть такая же проблема, есть ли другой способ исправить то же самое, кроме изменения целевой структуры? –

+0

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

ответ

4

IE не позволяет программно установить опцию Browser Mode. Параметр X-UA-Compatible устанавливает только Document Mode, и нет других настроек, которые вы можете использовать для Browser Mode.

К счастью, однако, в большинстве случаев вам не нужно беспокоиться о Browser Mode в любом случае.

Document Mode - тот, который изменяет реальный механизм рендеринга; это важно для IE для отображения содержимого в режиме IE9.

Browser Mode гораздо менее важно. Все это устанавливает строку User Agent - то есть текст, который браузер отправляет на сервер, чтобы определить, какой браузер вы используете. Этот параметр не влияет на фактическое отображение страницы.

Так что, предполагая, что на вашем сайте не происходит обнюхивания браузеров на стороне сервера, просмотрев строку User Agent, вам действительно не нужно беспокоиться о Browser Mode.

Если вы :, выполняющий обход браузера, это может повлиять на вас. Если это так, то вы будете немного застряли, так как вы не можете заставить браузер менять режим, но в этом случае я предлагаю вам попробовать другую технику. В целом согласен, что внюхать строку User Agent - это плохая идея, по разным причинам. В этом случае вам, вероятно, будет лучше использовать функцию обнаружения на стороне клиента.

Надеюсь, что это поможет.

Смежные вопросы