Skip to content

devote/spike

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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

About

adds w3c methods in Internet Explorer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published