Internet Explorer 9 (IE9)

Internet Explorer 9 (IE9) — новая версия интернет-браузера Microsoft. Предыдущие версии IE (особенно 6 и 7) отличались «своеобразием» и слабой поддержкой стандартов и возможностей, широко и давно поддерживаемых в других браузерах. Как и IE8, IE9 является значительным шагом вперёд.

К сожалению, IE9 не работает в Windows XP. Таким образом, IE8 — увы, наш новый IE6. С другой стороны, Microsoft по сути добровольно подарила другим — более качественным — браузерам значительную часть рынка (согласно статистике, в России Windows XP используют более 50% пользователей), и велика вероятность, что пользователь, привыкший к отличному от IE браузеру (например, Firefox 4, прекрасно работающему под Windows XP), продолжит использовать привычный браузер даже перейдя на современную версию Windows, и это хорошо.

К сожалению, как и в случае с IE8, Microsoft поспешила выпустить IE9, чтобы, видимо, снова слегка опередить главного конкурента — Firefox, выход наиболее современной и выдающейся — 4-й — версии которого также ожидается в самое ближайшее время. В результате IE9 содержит ряд недоработок, исправить которые в действительности труда не составило бы (например, не поддерживается HTML5-атрибут maxlength у элемента textarea).

Ниже — обзор (в основном технического характера) некоторых из новых возможностей IE9, замеченных автором этих строк. Следует заметить, подавляющее их большинство давно реализовано в других браузерах. С другой стороны, отставание IE существенно сократилось, и это не может не радовать.

HTML

Хорошо

  • Поддержка HTML5-элементов canvas, audio и video.
  • Пробельные символы теперь не съедаются и не «схлопываются».
  • Поддержка воспроизведения видео в открытом формате WebM. В отличие от Firefox 4, Opera 10.6+ и Chrome, поддержка WebM в IE9 во многом чисто номинальная, поскольку для этого необходимо, чтобы в системе был установлен соответствующий декодер, а это в общем случае маловероятно.
  • Поддержка векторного графического формата SVG, в том числе прямое включение SVG-кода в HTML-документ.

Плохо

  • Не поддерживаются HTML5-атрибуты maxlength, placeholder, required у элементов форм и проч. В Firefox 4 поддержка есть.
  • В элементе AUDIO поддерживается только формат MP3. Открытый Ogg Vorbis (поддерживаемый, например, в Firefox), в IE9 не поддерживается.
  • Не поддерживается WebGL — программный интерфейс для отображения трёхмерной графики в окне браузера. В Firefox 4 поддержка есть.

CSS

  • Более полная поддержка CSS3-селекторов (:last-child, :nth-child, :not, :target и проч.).
  • border-radius — закругление углов элементов без применения графики.
  • box-shadow — создание теней у элементов.
  • opacity — управление прозрачностью элемента.
  • Нормальная (в отличие от IE8) поддержка rgba(), позволяющего задать цвет с полупрозрачностью.
  • Возможность задать несколько фоновых изображений для одного элемента, поддерживаемая отныне современными версиями всех основных браузеров: Firefox, Opera, Chrome, Safari, IE.
  • Поддерживается применение стилей к произвольным (в том числе не предусмотренным по текущему стандарту) элементам без необходимости прибегать к JavaScript-ухищрениям типа HTML5 shiv.
  • Поддержка открытого формата шрифтов WOFF.
  • Поддержка CSS Media Queries — возможности задать различные стили в зависимости от размеров доступной области отображения страницы (например, окна браузера).
  • Поддержка CSS-функции calc(), позволяющей задать численные значения CSS-свойств в смешанных единицах. Например, width: calc(100% - 200px). Без этой возможности аналогичного эффекта можно было достигнуть только двумя вложенными элементами в сочетании с использованием отрицательных полей. В Firefox 4 аналогичная функция называется -moz-calc().
  • Data URI: снято имевшее место в IE8 нелепое ограничение в 32 КБ для размера каждого из встраиваемых в CSS изображений.

JavaScript

  • Добавлены стандартные свойства-константы DOM-элемента (ELEMENT_NODE, TEXT_NODE и проч.), которые можно использовать вместо численных значений при определении типа узла (Node.nodeType).
  • Поддержка метода getElementsByClassName() для быстрого получения элементов по названию класса.
  • Поддержка стандартного, кроссбраузерного метода назначения обработчиков addEventListener().
  • Поддержка метода msMatchesSelector() для проверки соответствия элемента заданному CSS-селектору. В Firefox аналогичный метод называется mozMatchesSelector().
  • Поддержка свойства textContent DOM-узла, позволяющего быстро получить или задать его текстовое содержимое.
  • Поддержка стандартного, кроссбраузерного метода getComputedStyle() для получения текущих вычисленных значений CSS-свойств.
  • Поддержка новых методов ECMAScript 5: например, Array.forEach(), Array.isArray() и String.trim().
  • Поддержка интерфейса Selection, позволяющего манипулировать выделенным на странице текстом и включающего знакомые по другим браузерам методы getSelection(), selectionStart() и selectionEnd().
  • Поддержка события DOMContentLoaded объекта document. В отличие от события load объекта window, событие DOMContentLoaded вызывается сразу после окончания разбора кода страницы — без ожидания загрузки изображений и прочих внедрённых на страницу ресурсов. Это удобно для назначения JavaScript-обработчиков в так называемом ненавязчивом (unobtrusive) стиле — когда JavaScript-код не интегрирован в страницу жёстко, а является дополнительным «слоем», расширяющем функциональные возможности веб-приложения. При этом минимизируется вероятность, что пользователь успеет воспользоваться элементом до того, как будет назначен обработчик. Впервые поддержка события DOMContentLoaded была внедрена в Mozilla 1.0, затем оно получило поддержку в других браузерах, а в настоящее время является частью спецификации HTML5.

Ошибки

Приятно заметить, что ваш покорный слуга лично внёс посильный вклад в разработку Internet Explorer 9 путём отправки и комментирования баг-репортов, часть которых впоследствии была исправлена.

Исправлено

Для просмотра баг-репортов необходима авторизация на сервере connect.microsoft.com.

Не исправлено

Установка

В отличие от IE8, русская версия IE9 без проблем устанавливается на англоязычную Windows 7. Пользователю это удобнее, чем раздельная установка браузера и языкового пакета к нему.