Функция-обнаружение: мутация-доступность событий в JavaScript?
как мой JavaScript может определить, доступно ли событие?
Я знаю о некоторых великих событие-таблицы совместимости, но мне нужно использовать обнаружение функций, а не обнюхивание браузера плюс таблицу поиска.
в частности, мой JS широко использует события мутации DOM (DOMNodeInserted
и DOMSubtreeModified
) -- которые отлично работают во всех браузерах, кроме (конечно) Internet Explorer.
Итак, как бы я обнаружил, поддерживает ли браузер DOMNodeInserted
?
3 ответов
Если вы просто хотите проверить, поддерживает ли браузер события мутации в целом, вы можете использовать этот простой тест:
var hasMutationEvents = ("MutationEvent" in window);
вот результаты из группы популярных браузеров: http://www.browserscope.org/browse?category=usertest_agt1YS1wcm9maWxlcnINCxIEVGVzdBjEkNAPDA
для запуска теста browserscope в другом браузере перейдите сюда: http://jsbin.com/aqeton/4/
этот вопрос довольно старый, но в случае, если кто-то еще наткнется на него, решение для обнаружения мутационных событий объясняется в этом ответе: Как проверить поддержку браузера для возможностей / событий?
из этого ответа:
вы не можете обнаружить мутации, и modernizr не работает для этого...
единственный способ "обнаружить" поддержку событий мутации-попытаться запустить событие.
для нормальные события, используйте статью perfectionkills в ответе takteek. Это все еще не поддерживает нюхание некоторых новых событий HTML5, таких как "ввод".
Я посмотрел вокруг на Google немного. Это похоже на то, что вы, вероятно, хотите:
http://perfectionkills.com/detecting-event-support-without-browser-sniffing/