Как включить IE9 Compatibility View программно в Javascript - PullRequest
1 голос
/ 22 марта 2012

Мне нужно программно включить совместимость с IE.

Я знаю, что это работает в C #:

Page.Header.Controls.AddAt(0, new HtmlMeta { HttpEquiv = "X-UA-Compatible", Content = "IE=EmulateIE7" });

Моя проблема в том, что все мои окна отображаются в функции JS: например:

function openRadWin(idAgir) {
    radopen("DemandesEnAttente_Estimate.aspx?id=" + idAgir, "RadWindow1");

}

Итак, мой вопрос: есть ли способы сделать то же самое в JS?

Заранее спасибо

Ответы [ 3 ]

6 голосов
/ 22 марта 2012

AFAIK, это невозможно. Вы можете определить режим совместимости из JS, но установить его, насколько мне известно, невозможно.

Что касается вашей проблемы, обычно вы можете использовать несколько решений:

  1. Если вы используете главные страницы на своем сайте, добавьте мета-заголовок (<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">) на главной странице.
  2. Аналогично # 1, если вы используете общий класс базовой страницы (хорошая и рекомендуемая практика), вы можете добавить мета-заголовок из общей базовой страницы ко всем своим страницам.
  3. Наконец, вы можете использовать конфигурацию IIS, чтобы добавить заголовок http ко всему вашему ответу.

Например, для IIS7 / IIS7.5 вы можете использовать web.config

<system.webServer>
  <httpProtocol>
     <customHeaders>
       <remove name="X-UA-Compatible" />
       <add name="X-UA-Compatible" value="IE=EmulateIE7" />
     </customHeaders>
  </httpProtocol>
</system.webServer>

Я бы предложил # 1 или # 2 - если у вас нет мастер-страницы или класса базовой страницы, то, возможно, самое время представить оба.

1 голос
/ 22 марта 2012

Что делает ваш пример на C #, это добавляет следующий метатег на html-страницу:

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

Если вы делаете это вручную на странице, где выполняется код JS, это должно работать.

1 голос
/ 22 марта 2012

Вы можете попробовать добавить этот тег HTML вверху любой страницы, для которой требуется совместимость:

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

Таким образом, вам не нужно решение JavaScript. Конечно, если у вас есть возможность изменить HTML, то лучшим решением будет исправить страницу, чтобы она не требовала обратной совместимости.

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

...