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)

devote 13.01.2013 16:35

Цитата:

Сообщение от melky
ждём, может быть разработчик займётся этим

Уже есть написанный XMLHttpRequest 2 для ИЕ, но пока не доделано и оно использует мою библиотеку jsClasses, что бы сеттеры/геттеры работали в ИЕ.

viktorina 13.01.2013 16:45

Цитата:

Сообщение от devote
Я заболел

Выздоравливай.
oncontextmenu - работает.
Остальные нет. В ietester пробую.

Deff 13.01.2013 16:48

Цитата:

Сообщение от devote
Как только полегче станет (Я заболел)

:( Выздоравливате!

viktorina 13.01.2013 16:50

Цитата:

Сообщение от devote
оно использует мою библиотеку

Уууууу! Круто!

FINoM 13.01.2013 18:10

devote, мне интересно, как ты всё успеваешь. Очень крутые штуки делаешь, наверняка кучу времени забирают, помимо основной работы.

viktorina 14.01.2013 01:32

scroll заработал незаметно.
mousewheel молчит...

viktorina 23.01.2013 00:17

<!--[if it IE 9]>
<script>
document.createElement("nav");
</script>
<![endif]-->

Такой код нужно прописывать в шаблоне, или всё уже включено?

x-yuri 18.05.2013 18:21

Идея нравится :) Сразу приходят в голову следующие ссылки (ну и еще одна для полноты). Разве что не совсем понятно, почему библиотека исправляет только explorer'ы. И возможно стоит разбить библиотеку на более мелкие части, чтобы можно было точнее выбирать что подключать. Чтобы можно было из нескольких библиотек собрать необходимый функционал. Да, и еще, по-моему все же практичнее создавать свой API, а не пытаться исправлять браузеры.

Best 10.06.2013 15:57

Здравствуйте, подскажите новичку, как правильно использовать данную библиотеку.
Как её подключить, правильно?
Собственно хочу использовать её, для обработки кастомных ивентов,
dispatchCustomEvent: function (element, type) {
            if (document.createEvent) {
                var evnt = document.createEvent('Event');
                evnt.initEvent(type, true, false);
                element.dispatchEvent(evnt);
            } else if (document.createEventObject) {
                var customEvnt = document.createEventObject();
                element.fireEvent('on'+type,customEvnt);
            }
        }

сейчас, такой код, но в иЕ7-8 не срабатывает, хотелось бы узнать как правильно подправить код, что бы все отработало. Сейчас использую библиотеку event.js c http://javascript.ru/tutorial/events/crossbrowser

devote 10.06.2013 19:00

Best,
просто подключите библиотеку и юзайте:

var evnt = document.createEvent('Event');
evnt.initEvent('mycustomevent', true, false);
element.dispatchEvent(evnt);

Best 11.06.2013 08:58

Цитата:

Сообщение от devote (Сообщение 255603)
Best,
просто подключите библиотеку и юзайте:

var evnt = document.createEvent('Event');
evnt.initEvent('mycustomevent', true, false);
element.dispatchEvent(evnt);

Спасибо, что ответили. То есть я подключаю библиотеку, и удалю ту часть куда, которая добавляет события и для ие(ветка елсе)? И не нужно ли писать так?
spike.event.addListener(...)

Прошу, прощения, за глупые вопросы, просто первая серозная работа с JS.

devote 11.06.2013 10:13

Цитата:

Сообщение от Best
и удалю ту часть куда, которая добавляет события и для ие

да вы все правильно поняли.

Цитата:

Сообщение от Best
И не нужно ли писать так?

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

devote 11.06.2013 10:19

x-yuri, извини, как то пропустил твое сообщение.

Цитата:

Сообщение от x-yuri
Разве что не совсем понятно, почему библиотека исправляет только explorer'ы.

Потому что другие браузеры вполне достойно работают с основным функционалом

Цитата:

Сообщение от x-yuri
Чтобы можно было из нескольких библиотек собрать необходимый функционал.

На мой взгляд вроде как и так порезано все по минимуму)

Цитата:

Сообщение от x-yuri
Да, и еще, по-моему все же практичнее создавать свой API, а не пытаться исправлять браузеры.

возможно, хотя и не понимаю зачем.. Разве не достаточно того что уже есть по инету? Или есть предложения по новой системе API?

FINoM 12.06.2013 04:27

devote, производились ли какие-нибудь тесты производительности?

devote 12.06.2013 11:09

Цитата:

Сообщение от FINoM
devote, производились ли какие-нибудь тесты производительности?

специальных тестов не писал, но тестил на разных своих проектах. И нагруженных и не нагруженных, на мой взгляд было норм.

x-yuri 14.06.2013 01:57

Цитата:

Сообщение от devote
возможно, хотя и не понимаю зачем.. Разве не достаточно того что уже есть по инету? Или есть предложения по новой системе API?

Я про то, что это сложно, а часто и невозможно. (ко всем) Кстати, можете сравнить со своими реализациями. Поэтому практичнее в первую очередь исходить из того как проще и надежнее, а не из того как в стандарте. Или можно еще сравнить classList.js и classNameExists, addClassName, removeClassName

devote 14.06.2013 10:52

Цитата:

Сообщение от x-yuri
а не из того как в стандарте

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

tenshi 14.06.2013 22:48

Для TextRange Есть что?)

devote 14.06.2013 22:52

Цитата:

Сообщение от tenshi
Для TextRange Есть что?)

только для INPUT'ов и TEXTAREA: https://github.com/devote/selection

tenshi 14.06.2013 23:06

Мало, нужны диапазоны! :О

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, время: 14:36.