Режим совместимости в IE8 с использованием VBScript - PullRequest
2 голосов
/ 01 июня 2009

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

Ответы [ 2 ]

2 голосов
/ 01 июня 2009

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

vbscript:msgbox(document.documentMode)

Что касается динамического изменения режима совместимости ... Вероятно, вы можете перебрать все метатеги и изменить содержимое заголовка http-эквивалент X-UA-Compatible, как в следующем примере, но у меня нет 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
0 голосов
/ 01 июня 2009

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

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

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

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

...