Проблема режима совместимости IE на страницах интрасети (только внутренняя, внешне работает нормально) - PullRequest
3 голосов
/ 05 марта 2012

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

Я использую сторонний компонент в качестве редактора HTML / загрузчика файлов в моей внутренней сети: http://www.dmxzone.com/go?18424

По какой-то причине он работал неправильно, и тогда я заметил, что IE автоматически переключался в режим совместимости при просмотре страницы с этим компонентом. Если я нажимаю F12 и переключаюсь обратно в режим IE9 или IE8, он работает нормально. Это также работает в Firefox и Chrome и т. Д. Я связался с разработчиками, которые мне очень помогли, но, оказывается, если я сделаю скрипт доступным извне в Интернете, он работает. Эта проблема возникает только при внутреннем просмотре в нашей сети, поэтому, я полагаю, это не их ошибка.

Если я просматриваю веб-страницу на самом веб-сервере, используя http://Localhost/page.asp, она работает, тогда как если я использую http://theservername/page.asp, она переключает режим совместимости и дает сбой.

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

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

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

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

Мы используем прокси (Webroot) для нашей веб-фильтрации, что я подозреваю, но это может быть красная сельдь.

Если у кого-то есть какие-либо предложения (кроме использования IE: p), я был бы очень признателен

Спасибо.

1 Ответ

4 голосов
/ 06 марта 2012

После долгих исследований я обнаружил, что:

X-UA-Compatible работает на сайтах интрасети, но только когда он выдается как заголовок HTTP, а не как метатег

спасибо stackoverflow!

Итак, немного больше читая и экспериментируя, я обнаружил, что добавление:

<% Response.AddHeader "X-UA-Compatible", "IE=Edge"  %>

вверхустраница, устраняет проблему.

...