Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   spike - библиотека внедряет W3C-шные методы в IE (https://javascript.ru/forum/project/27728-spike-biblioteka-vnedryaet-w3c-shnye-metody-v-ie.html)

FINoM 21.02.2014 15:25

Проект сдох? Если нет, планируются ли функции-конструкторы событий?
Кто юзает? Насколько бажно работает в восьмом осле?

Если ответы: да, нет, никто, очень, подскажите, пожалуйста W3C-шную альтернативу движку событий для 8 осла (DOM-shim очень плохой, ES-DOM-SHIM не совместим c jQuery (его приходится юзать для плагинов, которые переписывать оказывается дорого)).

devote 21.02.2014 20:41

1. Нет если кому то нужно я не против дописывать.
2. А они очень нужны? Если да, то в каких случаях и насколько они в них важны?
3. На этот вопрос ответа не знаю.
4. По моим тестам норм, а так может кто что скажет по своим наблюдениям.

FINoM 21.02.2014 20:50

Цитата:

Сообщение от devote
1. Нет если кому то нужно я не против дописывать.

Чего в скайпе не отвечаешь? :)
Цитата:

Сообщение от devote
2. А они очень нужны? Если да, то в каких случаях и насколько они в них важны?

Да. Хочется, чтоб весь код использовал стандарты. createEvent - устаревший метод. Да и не удобно его юзать, приходится initEvent/initCustomEvent запускать.

Пока ждал ответов, нашел такую хрень: https://github.com/WebReflection/ie8
Но там тоже нет конструкторов, пришлось писать свой костыль под библиотеку:
(function () {
	var CustomEvent;
	try {
		new Event( 'click' );
	} catch( e ) {
		function Event( eventName, params ) {
			params = params || { bubbles: false, cancelable: false };
			var evt = document.createEvent( 'Event' );
			evt.initEvent( eventName, params.bubbles, params.cancelable );
			return evt;
		};
		
		Event.prototype = window.Event.prototype;
		window.Event = Event;
	}
	
	try {
		new CustomEvent( 'xxx' );
	} catch( e ) {
		if( window.CustomEvent ) {
			CustomEvent = function( eventName, params ) {
				params = params || { bubbles: false, cancelable: false, detail: undefined };
				var evt = document.createEvent( 'CustomEvent' );
				evt.initCustomEvent( eventName, params.bubbles, params.cancelable, params.detail );
				return evt;
			};

			CustomEvent.prototype = window.CustomEvent.prototype;

		} else {
			CustomEvent = function( eventName, params ) {
				var evt = new Event( eventName, params );
				evt.detail = params.detail;
				return evt;
			};
		}
		window.CustomEvent = CustomEvent;
	}
})();

devote 21.02.2014 20:57

Цитата:

Сообщение от FINoM
Чего в скайпе не отвечаешь?

да я его уж давно не запускал)

Цитата:

Сообщение от FINoM
createEvent - устаревший метод.

что значит устаревший? из стандартов его никто не вырезал.. Дело наверно не в устаревании а в неудобстве.

FINoM 21.02.2014 21:07

Цитата:

Сообщение от devote
что значит устаревший? из стандартов его никто не вырезал.. Дело наверно не в устаревании а в неудобстве.

Не знаю, что по поводу стандартов, на МДН пишут, что он устаревший: https://developer.mozilla.org/en-US/...nt.createEvent
Цитата:

The createEvent method is deprecated. Use event constructors instead.

FINoM 21.02.2014 21:11

Цитата:

Сообщение от devote
да я его уж давно не запускал)

Кстати, ты онлайн все время

devote 21.02.2014 22:18

Цитата:

Сообщение от FINoM
Кстати, ты онлайн все время

видимо на макбуке он запущен, а я редко макбук юзаю, обычно моя за ним сидит.


Часовой пояс GMT +3, время: 12:52.