Как заставить IE10 отображать страницу в режиме документа IE9

У меня есть два вопроса:

  1. Как я могу заставить IE10 отображать в режиме документа IE9? В настоящее время он отображает мою страницу в стандартном режиме документа.

  2. На панели инструментов разработчика IE10 я не вижу опции режима документа IE10. Это не реализовано, или версия моего браузера устарела?

Спасибо за вашу помощь.


Изменить: спасибо всем за предоставленные решения. Раньше я использовал метатег <meta http-equiv="x-ua-compatible" content="IE=edge" > только для того, чтобы убедиться, что IE отобразит страницу в самом высоком режиме документа, но я столкнулся с некоторыми проблемами со стандартным режимом IE10, поэтому я изменил метатег, чтобы отображать страницу в режиме IE9: <meta http-equiv="x-ua-compatible" content="IE=9" >.


person Amit    schedule 17.01.2013    source источник
comment
developer toolbar? Я предполагаю, что вы имеете в виду developer tools. В верхней части окна справа от меню есть возможность изменить режим браузера. Вы также можете попробовать добавить этот тег в свой <head>: <meta http-equiv="X-UA-Compatible" content="IE=9" >   -  person Rocket Hazmat    schedule 17.01.2013
comment
IE10 вызывает у нас много головной боли. Проблемы с макетом таблицы внезапно возникли с таблицами, использующими width:auto и table-layout:fixed   -  person Johncl    schedule 09.04.2013
comment
У нас также возникают серьезные проблемы с IE10, особенно при использовании сторонних плагинов.   -  person BobRodes    schedule 04.06.2013
comment
поэтому в Visual Studio 2012 есть один фрагмент, введите metaie8 и дважды нажмите Tab, чтобы получить эту мета... :)   -  person Vishal Sharma    schedule 05.08.2013


Ответы (9)


Вы должны быть в состоянии сделать это, используя метатег X-UA:

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

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

person Shauna    schedule 17.01.2013
comment
+1 за ответ, но разве это не совершенно бесполезно? У меня было несколько компьютеров в нашей лаборатории, которые вообще не загружали наше приложение. После расследования я понял, что все эти ПК были настроены на IE7, и хотя я использовал приведенную выше мета с content = IE = 8, он все равно выбрал переопределение ПК вместо предложения страницы. В конце концов, я не понимаю, как это может помочь? - person Jeach; 03.05.2013
comment
@Jeach - Скорее всего, компьютеры в вашей лаборатории подключены к локальному домену. Если это так, то велика вероятность, что этот параметр обрабатывается групповой политикой, которая в значительной степени превосходит все (и даже если GP не контролирует его, пользователь все равно может принудительно выбрать другой режим рендеринга с помощью инструментов разработчика). Изнутри веб-страницы вы можете контролировать очень многое, но если это не переопределено локально, метатег будет работать. - person Shauna; 07.05.2013
comment
Этот ответ немного покровительственный — что, если вы хотите просто заставить что-то работать, чего вы не написали/не можете изменить. Кроме того: тег <meta> не должен самозакрываться (так не работает, выводится только предложение использовать совместимость). Если вы пишете <meta http-equiv="X-UA-Compatible" content="IE=9" > (пробел перед ›), это фактически запускает режим. - person Tomasz Gandor; 09.05.2013
comment
@TomaszGandor - это зависит от вашего типа документа. XHTML требует косую черту в конце, HTML5 допускает и то, и другое, а HTML4 не одобряет его (но браузеры разрешают). Кроме того, с технической точки зрения, <meta http-equiv="X-UA-Compatible"...> в любом случае не является действительным HTML5, и ограничен http-equiv=content-type. Это проприетарный тег, которого следует избегать если это возможно. Если вы не можете его изменить (хотя можете как-то добавить метатег), то, очевидно, этого не избежать. Однако без контекста из ОП это невозможно узнать. - person Shauna; 09.05.2013
comment
@Shauna - вы правы насчет ограничения в metas в HTML 5. Даже атрибут name подлежит ограничениям, да. Но забудьте о валидности HTML5 - я не об этом спорил - я имел в виду, что некий проприетарный браузер, который доставил много проблем в истории Интернета, реагирует на этот метатег. И в результате - ни срабатывания режима IE9 при самозакрытии, ни отсутствия пробела перед >! Это означает нарушение валидности w3c даже без всякой выгоды. - person Tomasz Gandor; 13.05.2013
comment
@TomaszGandor: Вы уверены, что не опечатались? Пробел перед > может запускать режим совместимости по совершенно другой причине. - person Ry-♦; 29.08.2013
comment
Не работает в IE11. метатег не меняет тип документа. Что может быть не так? - person Scott Chu; 22.01.2018

Вы имеете в виду, что хотите указать своей копии IE 10 отображать страницы, которые она просматривает, в режиме IE 9?

Или вы хотите, чтобы ваш веб-сайт заставлял IE 10 отображать его в режиме IE 9?

Для бывшего:

Чтобы перевести веб-страницу, которую вы просматриваете в Internet Explorer 10, в определенный режим совместимости документов, сначала откройте инструменты F12, нажав клавишу F12. Затем в меню Режим браузера выберите Internet Explorer 10, а в меню Режим документа выберите Стандарты. .

http://msdn.microsoft.com/en-gb/library/ie/hh920756(v=vs.85).aspx

Для последнего другие ответы верны, но я бы не советовал этого делать. IE 10 больше соответствует стандартам (то есть больше похож на другие браузеры), чем IE 9.

person Paul D. Waite    schedule 17.01.2013
comment
Я согласен с Полом. Я бы сосредоточился на оптимизации вашего веб-сайта для IE10 вместо IE9, поскольку он может лучше обрабатывать новейший код CSS и HTML. - person Bart; 17.01.2013
comment
Я также согласен с этим решением, но проблема для меня в том, что это приложение использует множество сторонних компонентов JSF, таких как Тринидад. Основная проблема со стандартным режимом IE10 заключается в том, что оно не может обрабатывать вызовы javascript из java, но мы работаем над этим. Спасибо всем за вашу помощь - person Amit; 18.01.2013
comment
@Amit: а, понятно. Режим IE 9 решает эту проблему? - person Paul D. Waite; 18.01.2013
comment
@Bart У меня нет контроля над страницами, и у разработчиков еще нет времени исправлять проблемы совместимости, но они могут найти время, чтобы добавить метатег на определенные страницы. Увы, мне нужно, чтобы режим браузера был IE9, но метатег устанавливает только режим документа, и изменение режима браузера с помощью инструментов F12 не вариант. - person Schalk Versteeg; 09.04.2013

Вы можете настроить реестр, если хотите внести изменения только в свою систему. Если у вас есть IE10 и многие веб-сайты, которые вы посещаете, не отображаются должным образом в IE10, вы можете настроить свой реестр, чтобы заставить IE открываться в режиме IE9.

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

Создайте DWORD как iexplore.exe и задайте значение 9999. Перезапустите IE, и он откроется в режиме IE9 :)

Спасибо моему коллеге Sreejith D :)

person Vinod K    schedule 16.04.2013
comment
имя iexplore.exe или iexplorer.exe? - person th1rdey3; 09.10.2013
comment
Идеально! msdn.microsoft.com/en- мы/библиотека/ - person mbrownnyc; 29.10.2013
comment
Стоит отметить, что этот параметр не сохраняется при перезагрузке, поэтому в меню «Автозагрузка» выбран быстрый reg add. - person mbrownnyc; 25.11.2013

Я не видел, чтобы это делалось раньше, но вот как это было сделано для эмуляции IE 8/7 при использовании IE 9:

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

Если нет, то попробуйте этот:

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

Добавьте их в свой заголовок с другими метатегами. Это должно заставить IE10 отображаться как IE9.

Другой вариант, который вы могли бы сделать (при условии, что вы используете PHP), — добавить это в ваш файл .htaccess:

Header set X-UA-Compatible "IE=9"

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

person PlantTheIdea    schedule 17.01.2013

Судя по здесь, IE10 (статья во всяком случае, относится к предварительной версии) он может использовать X-UA-Compatible только, если документ находится в режиме совместимости (без DOCTYPE), в противном случае IE10 не будет реагировать на запрос.

Вот отрывок:

Таким образом, чтобы заставить IE10 реагировать на директиву X-UA-Compatible, нужно либо создать страницу, которая запускает режим совместимости в соответствии с правилами HTML5 (то есть: страницу без типа документа). Однако можно также отправить директиву в виде заголовка HTTP: директива, отправленная HTTP, не имеет никакого эффекта, если вы используете ее для понижения рендеринга — ее можно использовать только для обновления рендеринга.

Таким образом, вы должны сделать это вручную с помощью Dvelopers Tools или в режиме quirks (но я предлагаю оставаться в режиме IE10, который впервые приведен в соответствие со стандартом других браузеров)

РЕДАКТИРОВАТЬ: Ниже приведены некоторые полезные ссылки для чтения:

http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx

http://blogs.msdn.com/b/ie/archive/2011/12/14/interoperable-html5-quirks-mode-in-ie10.aspx

person Ragnarokkr    schedule 17.01.2013
comment
Это не то, что я нашел. Я только что успешно использовал тег meta на странице, на которой был DOCTYPE... но он работает только тогда, когда это первый тег в head. Истерика... - person Jan Krüger; 08.05.2013
comment
+1 за хорошие новости. Однако, как я указал в своем ответе, речь идет о предварительном выпуске IE10. Так что, скорее всего, они изменили это поведение в окончательной версии.. Тем не менее, насколько я помню, тег meta всегда должен был отображаться в качестве первого тега, чтобы браузер знал, какой режим рендеринга требуется. - person Ragnarokkr; 08.05.2013

Вы можете заставить IE10 отображать в режиме IE9, добавив:

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

в вашем теге <head>.

Дополнительные сведения см. в MSDN. ...

person Bart    schedule 17.01.2013
comment
Как это будет вести себя для браузера IE8? - person Amit; 17.01.2013
comment
Если веб-страница указывает режим совместимости документа, который не поддерживается версией Internet Explorer, используемой для просмотра веб-страницы, веб-страница будет отображаться в самом высоком режиме документа, поддерживаемом этой версией Internet Explorer. Например, страница, в которой указан режим IE9, будет отображаться в режиме IE8 при просмотре в Internet Explorer 8. - person Bart; 17.01.2013

есть много способов сделать это:

добавить тег X-UA-Compatible в заголовок ответа http

с помощью инструментов IE F12

изменить реестр виндовс

person Shawn Xue    schedule 27.05.2013

Взлом является рекурсивным. Это похоже на то, что сам IE использует компонент, который используется многими другими процессами, которым нужен «веб-компонент». Следовательно, в реестре мы добавляем IEXPLORE.exe. По сути, это рекурсивный хак.

person Sreejith. D. Menon    schedule 25.05.2013

Я нашел этот пост, когда искал решение для своего веб-сайта DNN6. Ошибка была

SCRIPT5007: невозможно получить свойство «documentElement» неопределенной или нулевой ссылки

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

Итак, для пользователей DotNetNuke 6 попробуйте StyleHelper SkinObject

Работал отлично для меня!

person Ana Sampaio    schedule 05.06.2013