Как проверить поддержку браузером возможностей / событий? - PullRequest
3 голосов
/ 19 апреля 2011

В прошлом мы использовали анализ браузера, чтобы определить, были ли доступны определенные события или возможности.Я понимаю, что сниффинг в браузере «устарел» или «обделен» в пользу фальсификации функций.Я хотел бы знать, как я могу проверить, может ли определенное событие быть обработано.

Например, DOMNodeInserted.Он поддерживается Chrome, FF и Safari, но не IE.Как я могу понюхать, если это событие доступно?Есть ли библиотека в подарок?Как вы, ребята, делаете правильный анализ нюансов?

Ответы [ 3 ]

5 голосов
/ 19 апреля 2011

Вы не можете обнаружить мутационные события, и Modernizr не работает для этого (так как люди будут выкладывать это как ответ де-факто).

Единственный способ «обнаружить» поддержку событий мутации - попытаться вызвать событие. Псевдокод:

var div = document.createElement('div'), supported = false;
div.addEventListener('DOMNodeInserted', function(){ supported = true; });
div.appendChild(div.cloneNode(true));

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

3 голосов
/ 19 апреля 2011

Оформить заказ http://www.modernizr.com

0 голосов
/ 19 апреля 2011

Чтобы ответить на общий вопрос - как я могу прослушивать функции - я использую объект jQuery.support .

...