Я делаю работу для клиента, который включает режим совместимости на всех сайтах интрасети. Мне было интересно, есть ли тег, который я могу вставить в мой HTML, который отключает режим совместимости.
html
internet-explorer
Аль Катавази
источник
источник
Ответы:
Есть режим "край" .
Со связанной страницы MSDN:
Тем не менее, режим «край» не рекомендуется в производственном использовании:
Честно говоря, я не совсем понимаю, почему. Но в соответствии с этим, лучший способ идти в данный момент - это использование
IE=8
.источник
IE=10
на своих сайтах. Если вы проверили свой сайт в IE10 (предварительная версия), это безопасно использовать; в противном случае, вы можете придерживатьсяIE=9
пока.Tools->Compatibility View Settings
флажок Отображать все веб-сайты в представлении совместимости. Чтобы решить проблему, я должен вернуть заголовок в ответе HTTP:X-UA-Compatible: IE=edge
После многих часов устранения неполадок в этом материале ... Вот несколько кратких советов, которые нам помогли из
X-UA-Compatible
документов: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentContainer_ctl16С помощью
<meta http-equiv="X-UA-Compatible" content=" _______ " />
В Standard User Agent режимы (не-эмулировать них) игнорировать
<!DOCTYPE>
директивы в вашей страницы и рендер на основе стандартов , поддерживаемых этой версией IE (например,IE=8
будет лучше повинуется разнос границы таблицы и некоторые псевдо - селекторы , чемIE=7
).Принимая во внимание, что режимы эмуляции говорят IE следовать любым
<!DOCTYPE>
директивам на вашей странице, отображая режим стандартов в зависимости от выбранной вами версии и режим причуд, основанный наIE=5
Возможные значения для
content
атрибута:content="IE=5"
content="IE=7"
content="IE=EmulateIE7"
content="IE=8"
content="IE=EmulateIE8"
content="IE=9"
content="IE=EmulateIE9"
content="IE=edge"
источник
Если вы работаете со страницей в зоне интрасети, вы можете обнаружить, что IE9, независимо от того, что вы делаете, переходит в режим IE7 Compat.
Это связано с тем, что в настройках IE Compatibility указано, что все сайты интрасети должны работать в режиме совместимости. Вы можете снять галочку с помощью групповой политики (или просто снять галочку в IE) или установить следующее:
Это работает (как подробно описано в других ответах), но изначально может не выглядеть так: это должно произойти до объявления таблиц стилей . Если вы этого не сделаете, это игнорируется.
источник
Я верю, что это сделает свое дело:
источник
Как предлагается в этом ответе на связанный вопрос, режим «ребра» может быть установлен в файле Web.Config. Это сделает его применимым ко всему HTML, возвращенному из приложения, без необходимости вставлять его на отдельные страницы:
Этот же шаг также можно выполнить, изменив «Заголовки ответа HTTP» с помощью диспетчера IIS для сервера IIS, всего веб-сайта или определенных приложений.
источник
Решение с метатегом не работает для нас, но установка его в заголовке ответа сделала:
источник
chrome=1
свойства, stackoverflow.com/a/22059516/368691 . Имейте в виду, что Chrome Frame был удален. blog.chromium.org/2013/06/retiring-chrome-frame.htmlЕще несколько заметок на эту тему, основанных на моем недавнем опыте. В университете я работаю над проблемами ноутбуков с IE 8, установленным в режим совместимости для всех сайтов интрасети. Я попытался добавить метатег, чтобы отключить этот режим для страниц, обслуживаемых моим сайтом, но IE постоянно игнорировал этот тег. Как отметил Ланс в своем посте, добавление заголовка ответа устранило эту проблему. Вот как я устанавливаю заголовок на основе стандартного метода HTML5:
Для того, чтобы этот заголовок действительно был отправлен, вы должны убедиться, что в Apache включены mod_headers. Если вы хотите убедиться, что этот мод включен, поместите его на страницу, которая может запускать php:
источник
IE8 по умолчанию работает в стандартном режиме для внутренней сети и в режиме причуд для внутренней сети. Метатег HTML игнорируется, если для типа документа задан переходный xhtml. Решение состоит в том, чтобы добавить заголовок HTTP в коде. Это сработало для нас. Теперь наш сайт в интрасети заставляет IE8 отображать приложение в стандартном режиме.
Добавлено в PageInit базового класса страниц (ASP.net C #):
ссылка: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html
источник
Это связано с тем, что в настройках IE Compatibility указано, что все сайты интрасети должны работать в режиме совместимости. Вы можете снять галочку с помощью групповой политики (или просто снять галочку в IE) или установить следующее:
Видимо, невозможно изменить настройки представления совместимости как групповую политику, но это то, что, возможно, можно изменить в реестре, этот метатег у меня работает нормально, мне пришлось заставить работать требуемый атрибут как часть HTML-формы , он работал в Chrome и Firefox, но не IE.
Вот хороший пример того, какие браузеры поддерживают каждый отдельный элемент HTML 5.
http://html5readiness.com/
Обратите внимание на один общий знаменатель Google Chrome, он поддерживает все. Надеюсь, это поможет
источник
Вставьте как самый первый элемент под тегом.
Это заставляет IE отображать страницу в физической версии IE, и игнорирует браузер «Настройка режима». Это можно установить в инструментах разработчика, попробуйте изменить его на более старую версию IE для тестирования, это следует игнорировать, и страница должна выглядеть точно так же.
источник
Если у вас есть доступ к серверу, самый надежный способ сделать это - сделать это на самом сервере, в IIS. Перейдите к заголовкам ответа HTTP IIS. Добавить имя: X-UA-Compatible
Значение: IE = edge Это переопределит ваш браузер и ваш код.
источник
Если вы хотите, чтобы каждая отдельная веб-страница загружала выбранный контент и использовала asp.net. Просто примените его как первый тег под тегом заголовка в Views> shared> Layout.cshtml.
просто совет
источник