Режим совместимости в IE8 с использованием VBScript

Можно ли установить и проверить режим совместимости в IE8 с помощью VBScript?

Ответ 1

В соответствии со статьей Определение совместимости документов, document.documentMode, который возвращает режим совместимости текущей страницы в IE8. Например, вы можете ввести это в адресную строку IE8, чтобы отобразить значение режима совместимости в окне сообщения:

vbscript:msgbox(document.documentMode)

Что касается динамического изменения режима совместимости... Вероятно, вы можете перебирать все метатеги и изменять содержимое X-UA-совместимого заголовка http-equiv, как в следующем примере, но у меня нет IE 8, поэтому не могу сказать, действительно ли это работает.

Sub ChangeCompatMode
  Dim metatags, meta

  Set metatags = document.getElementsByTagName("meta")
  For Each meta In metatags
    If UCase(meta.getAttribute("httpEquiv")) = "X-UA-COMPATIBLE" Then
      ' Change the document mode
      meta.setAttribute "content", "IE=edge"
      Exit For
    End If
  Next
End Sub

Ответ 2

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

Если вам нужна правильная поддержка стандартов, установите действующий DOCTYPE, и вы настроены. Если вы хотите, вы также можете настроить META или HTTP Header на принудительный режим стандартов, чтобы конечный пользователь не мог случайно застрелить себя в ноге, установив его в режим совместимости.

С другой стороны, если у вас есть унаследованный сайт, для которого требуются IE для рендеринга/сценариев поведения IE, отправьте META/HTTP Header для принудительного режима совместимости.

Попытка изменить это на лету... просит неприятностей.