Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.12.2011, 04:47
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Как проверить, поддерживается ли событие?
Например, animationend поддерживается не всеми браузерами (может и ни одним). Поэтому приходится применять такие события, как webkitanimationend и пр. Если одновременно добавлять и обычное событие и событие с вендорным префиксом, боюсь, в один прекрасный момент, они будут срабатывать оба.
Ответить с цитированием
  #2 (permalink)  
Старый 30.12.2011, 04:57
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

if ( document.body.onanimationend === null ) {
    alert( "support" );
} else {
   alert( "unsupport" );
}

if ( document.body.onclick === null ) {
    alert( "support" );
} else {
   alert( "unsupport" );
}

Последний раз редактировалось devote, 30.12.2011 в 05:01.
Ответить с цитированием
  #3 (permalink)  
Старый 30.12.2011, 05:21
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

И? document.createElement('div').onwebkitanimationend выдает null.
Ответить с цитированием
  #4 (permalink)  
Старый 30.12.2011, 05:25
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от FINoM
И? document.createElement('div').onwebkitanimationend выдает null.
И правильно делает что выдает, если по умалчанию имеет значение null значит такое свойство браузер держит, если undefined значит не держит.

все просто:

var event = document.createElement('div').onanimationend === null ? 'animationend' : 'webkitanimationend';
addEventListener( event, function(){}, false);
Ответить с цитированием
  #5 (permalink)  
Старый 30.12.2011, 05:28
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от devote
И правильно делает что выдает, если по умалчанию имеет значение null значит такое свойство браузер держит, если undefined значит не держит.
Тьфу блин, не null a undefuned.
Сообщение от devote
все просто:
Предлагаешь для одного лишь animationend вешать обработчики на насколько событий с вендорными префиксами, не проверяя поддерживаются ли эти события?
Ответить с цитированием
  #6 (permalink)  
Старый 30.12.2011, 05:35
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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

ты задал вопрос как узнать поддерживает браузер оригинальное событие или нет... тепер пишешь простую функцию инициализации библиотеки:

eventNames = (function(){
    var conf ={},
        div = document.createElement('div');
    conf.animationend = div.onanimationend === null ? 'animationend' : 'webkitanimationend';
    conf.какойтотамевент = div.onкакойтотамевент === null ? 'какойтотамевент' : 'webkitкакойтотамевент';
    conf.какойтотамевент2 = div.onкакойтотамевент2 === null ? 'какойтотамевент2' : 'webkitкакойтотамевент2';
    div = null;
    return conf;
}());


а теперь спокойно юзаешь:
elem.addEventListener( eventNames.какойтотамевент, function(){
}, false);

elem.addEventListener( eventNames.animationend, function(){
}, false);
и тд
Ответить с цитированием
  #7 (permalink)  
Старый 30.12.2011, 05:37
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

trikadin,
ну не знаю, у меня в опере норм выдает
Ответить с цитированием
  #8 (permalink)  
Старый 30.12.2011, 05:37
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Еще раз объясняю, onwebkitanimationend выдаёт undefined, хотя через addEventListener поддерживается.
Ответить с цитированием
  #9 (permalink)  
Старый 30.12.2011, 05:37
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от trikadin
devote, а ваш пример у меня в обоих случаях "unsupport" выдаёт))
просто мне это не нужно было никогда, поэтому на вскидку щас примеры показываю
Ответить с цитированием
  #10 (permalink)  
Старый 30.12.2011, 05:39
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от FINoM
Еще раз объясняю, onwebkitanimationend выдаёт undefined, хотя через addEventListener поддерживается.
ну может он как-то подругому прописан, в файрбаге то посмотрите
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать событие для списка node. DimaRogov Events/DOM/Window 5 18.09.2011 16:52
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
как проверить, есть ли переменная Аскар Общие вопросы Javascript 3 04.01.2010 17:09
Как можно программно вызвать событие documenta onafterupdate nikolay84 Events/DOM/Window 1 08.07.2009 02:13
Как проверить существование функции Aderba Общие вопросы Javascript 2 14.11.2008 16:09