Skip to content

Latest commit

 

History

History
76 lines (51 loc) · 2.93 KB

README.md

File metadata and controls

76 lines (51 loc) · 2.93 KB

spike

adds w3c methods in Internet Explorer

Данная библиотека предназначена именно для Internet Explorer 6,7,8 а в дальнейшем возможно будет что-то добавлять и в IE9.

Скажу сразу, поддержку IE6 я не планировал, но реализация привела к тому что она очень даже хорошо работает в IE6, так что уж не обессудьте.

Что именно делает эта библиотека, а делает она очень простые вещи. Добавляет W3C-шные методы в ослобраузер, такие как addEventListener, querySelector и т.д.

Каждая реализация, а точнее модель разделена и при необходимости легко извлекается. То-есть библиотеку вы можете построить самостоятельно. Об этом чуть ниже.

DOM Element.prototype:

В 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. Жестких тестов не проводил, но во время разработки тесты дали положительный результат. Если будет желание потестить, или найдете ошибку, сообщайте мне и я от нее немедленно избавлюсь.