Данная библиотека предназначена именно для Internet Explorer 6,7,8 а в дальнейшем возможно будет что-то добавлять и в IE9.
Скажу сразу, поддержку IE6 я не планировал, но реализация привела к тому что она очень даже хорошо работает в IE6, так что уж не обессудьте.
Что именно делает эта библиотека, а делает она очень простые вещи. Добавляет W3C-шные методы в ослобраузер, такие как addEventListener
, querySelector
и т.д.
Каждая реализация, а точнее модель разделена и при необходимости легко извлекается. То-есть библиотеку вы можете построить самостоятельно. Об этом чуть ниже.
В IE7 и ниже нет возможности расширять элементы новыми прототипами, которые мы хотим делегировать всем элементам, для этого я написал небольшую модель для ее эмуляции в IE<8. Теперь она дает возможность нам расширить элементы своими методами.
Вот ниже один из способов будет корректно работать в IE 7-ой версии и ниже:
var div = document.createElement( 'div' );
Element.prototype.ourNewMethod = function() {
alert( 'Привет мир!' )
}
div.ourNewMethod(); // alerts 'Привет мир!'
и другие вариации которые вам придут в голову.
.addEventListener
- полная поддержка событий, включая возможность ловить события во время погружения, то-есть третий параметр метода не бездействует.
.removeEventListener
- полная поддержка удаления событий, так же удаляет в зависимости от типа фазы распространения.
.dispatchEvent
- полная поддержка ручного запуска события.
document.createEvent
- частичная поддержка создания событий, поддерживает события только DOM Level 2, то-есть
Event
,CustomEvent
,UIEvent
,MouseEvent
. В дальнейшем возможно будет расширена.
.preventDefault()
- отменить действие по умолчанию.
.stopPropagation()
- прервать событие на следующей фазе или другом элементе.
.stopImmediatePropagation()
- полная остановка распространение события. (новое в HTML5)
и прочие свойства экземпляра события по требованиям DOM Level 2
Так же присутствуют константы указывающие тип фазы:
Event.CAPTURING_PHASE
Event.AT_TARGET
Event.BUBBLING_PHASE
.querySelectorAll
- полный CSS3 селектор для поиска списка элементов, в IE8 добавляет поддержку только тех селекторов которые не имеет нативный метод.
.querySelector
- полный CSS3 селектор для поиска одного элемента
.getElementsByClassName
- полная поддержка поиска по классу элемента, так же можно указывать список классов которые обязательно должны будут присутствовать в искомом элементе
.matchesSelector
- полный CSS3 селектор для проверки элемента
Все это на данный момент работает в IE 6,7,8. Жестких тестов не проводил, но во время разработки тесты дали положительный результат. Если будет желание потестить, или найдете ошибку, сообщайте мне и я от нее немедленно избавлюсь.