Поддержка событий DOM Level 3 в IE9
Интероперабельные DOM-события являются ключевой частью обещаний относительно "единой разметки" HTML5. Благодаря поддержке DOM-событий в IE9 веб-разработчики могут создавать более интероперабельный код, используя модель событий, которая является более четкой, и предлагать дополнительные функции, которые не представлялись возможными в предыдущих версиях IE .
При авторинге кода событий JavaScript для IE8 или предыдущих версий браузера, веб-разработчикам приходилось создавать отдельный код для IE. Так, к примеру, большинство страниц, на которых используется кросс-браузерный код событий, использует такой код:
if ( <addEventListener detect> ) {
// Модель событий W3C DOM
// Поддерживается в Firefox, Chrome, Safari, Opera и (теперь) IE9
}
else if ( <IE or attachEvent detect> ) {
// Код для модели событий предудущих версий IE
}
/ Код для модели событий предудущих версий IE
}[/code]
Как вариант, веб-разработчики могут использовать "традиционные" модели событий (событийные атрибуты HTML), поскольку они предлагают наиболее интероперабельные возможности. Тем не менее, это приводит к колоссальной потере функциональности.
С IE9 вы можете создавать ту же разметку и сценарии, и они будут работать во всех браузерах без ущерба для функциональности и производительности. Ознакомьтесь с
"Единая разметка" сквозь стандарты
Сегодня разметка по-разному отображается в разных браузерах. Поддержка в в IE9 событий DOM Level 3 является огромным шагом вперед, но не в полной мере решает эту проблему. Именно поэтому мы работаем в W3C для создания высококачественных спецификаций и набора тестов с целью обеспечить интероперабельность браузеров.
Есть две отдельные части спецификации DOM Level 3, которым я особенно рад с точки зрения интероперабельности. Во-первых, события "
Второй - это интерфейс событий Keyboard. Знали ли вы, что события "keydown" "keyup" и "keypress" (представлены во всех браузерах) никогда не были стандартизированы? Это лишь одна из причин, почему веб-разработчики не имеют "единой разметки" (скриптов), работающих во всех браузерах в отношении клавиатуры.
В предварительной версии IE9 впервые реализован интерфейс событий Keyboard из спефицикации DOM Level 3. Этот интерфейс определяет модель взаимодействия с клавиатурой, которая решает давние вопросы интернационализации, а также предоставляет удобную высокоуровневую абстракцию клавиатуры (на основе Unicode). Естественно, мы считаем, что предыдущие низкоуровневые интерфейсы клавиатуры (например, "keyCode"), хотя и не на 100% совместимы, будут сосуществовать в браузерах для обеспечения обратной совместимости. Мы будем рады услышать отзывы по этому интерфейсу. А те из вас, кто желает направить свой отзыв прямо в нашу рабочую группу, пишите на www-dom@w3.org.
В целях по обеспечению совместимости
Отличия от ранее используемой модели событий IE
В целом модель событий DOM (как Level 2, так и Level 3) решает многие сценарии, которыех в предыдущей модели IE не было вовсе. Например, новые события DOM позволяют следующие сценарии работы во всех браузерах:
- "Универсальный" слушатель может быть зарегистрирован на поддереве DOM для события, которое не раздувается (требуется "фаза захвата").
- Гарантированный сигнал активации для нескольких слушателей на одном узле.
- Способность сообщать, на каком узле в настоящее время происходит поток событий (currentTarget).
В результате поддержки новой модели IE9 в стандартном режиме добавил несколько изменений в некоторые существующие события в первую сборку предварительной версии. Все эти изменения ограничиваются режимом стандартов IE9. Например:
- Умолчания вздутие/отмена для многих событий, измененных в соответствии со стандартом.
- Регистрации слушателя событий для старых событий, поддерживаемых в рамках новой модели (с использованием attachEvent/detachEvent), использует тот же сигнал активации, что и addEventListener.
- Регистрация с помощью атрибутов событий HTML (и их свойств) одновременно активирует MSEventObj (объект старых событий) через свойства window.event, а также новые события DOM через параметр обработчика событий. Это сделано, поскольку атрибут события HTML неоднозначен, то есть какую модель ждет веб-разработчик - новую или старую?
Мы создали интерактивное демо, чтобы продемонстрировать некоторые из функций модели DOM. Посмотрите его
То ли еще будет
Пока IE9 находится в разработке, так что это далеко не все. Вот несколько вещей, которые будут доступны в грядущих обновлениях предварительной версии. За дополнительной информацией обращайтесь к
1. События мутации. События мутации позволяет веб-страницам реагировать на изменения в структуре документа HTML, например, изменения в атрибутах, текстовом наполнении, удаление элементов и дополнений и т.д. В спецификации DOM Level 2 были определены события мутации. Обратите внимание, что далеко не все события мутации реализованы во всех браузерах.
2. DOMContentLoaded. DOM события спецификации 3 уровня определяют общие рамки и базовый набор событий, но не определяют все события, имеющие отношение к веб-браузеру для поддержки. HTML5 определяет многие дополнительные события, прежде всего
3. Совместимые свойства события. Хотя они и не стандартизированы, многие свойства события, как, например, "keyCode", "cancelBubble" и т.д., широко используются в других браузерах, поэтому многие веб-страницы зависят от их функциональности в целях обеспечения интероперабельности.
Мы призываем веб-разработчиков по всему миру программировать прямо в модель событий DOM. Ознакомьтесь с
Трэвис Лейтхэд (Travis Leithead),
программный менеджер Internet Explorer
Источник:
Перевод: houseboy
Комментарии
Такими темпами скоро библиотеки типа jQuery уйдут в прошлое.
По теме
- Еще пару слов о защите пользователей IE9 от отслеживания
- [Temp] Бенчмарк HTML5 Blizzard: проверьте аппаратное ускорение вашего браузера
- [Temp] Работаем с закрепление сайтов
- Блог IE в 2010: на связи с вами
- С новым аппаратно-ускоренным годом!
- HTML5: экспериментальный и готовый к использованию
- Доступно декабрьское накопительное обновлениие безопасности для IE
- IE9 и конфиденциальность: введение в защиту от слежения
- Более быстрый и умный список Compatibility View List в IE9
- Субпиксельные шрифты в Internet Explorer 9