9

¿Cómo puedo detectar mi JavaScript si hay un evento disponible?Feature-detect: ¿disponibilidad de evento de mutación en JavaScript?

Conozco algunos excelentes event-compatibility tables, pero necesito usar la detección de características, no el rastreo del navegador más una tabla de búsqueda.

Específicamente, mi JS hace un gran uso de los eventos de mutación DOM (DOMNodeInserted y DOMSubtreeModified), que funcionan muy bien en todos los navegadores excepto (por supuesto) Internet Explorer.

Entonces, ¿cómo puedo detectar si un navegador es compatible con DOMNodeInserted?

Respuesta

8

Si lo que desea es comprobar si el navegador es compatible con los eventos de mutación, en general, puede utilizar esta sencilla prueba:

var hasMutationEvents = ("MutationEvent" in window); 

Estos son los resultados de un montón de los navegadores más populares: http://www.browserscope.org/browse?category=usertest_agt1YS1wcm9maWxlcnINCxIEVGVzdBjEkNAPDA

Para ejecutar la prueba del explorador en otro navegador, vaya aquí: http://jsbin.com/aqeton/4/

+0

Sí, parece ser un buen filtro de primer paso. +1 –

2

Miré un poco en google. Esto parece que es probablemente lo que quiere:

http://perfectionkills.com/detecting-event-support-without-browser-sniffing/

+0

Lo llevo de vuelta. Esa página no proporciona ninguna utilidad para el evento de mutación, detección de características. Pensé que estaría bien porque pretende vincular a * otra página que sí lo hace. Sin embargo, el código en la segunda página no es muy transversal y también hace suposiciones sobre futuros conjuntos de características de IE. –

4

Esta pregunta es bastante antiguo, pero en caso de que alguien se tropieza demás sobre ella, una solución para la detección de eventos de mutación se explica en esta respuesta: How to check browser support for capabilities/events?

a partir de ese

respuesta:

no se puede detectar eventos de mutación, y Modernizr no funciona para esto ...

La única forma de "detectar" la compatibilidad con eventos de mutación es intentar activar el evento.

Para eventos normales, utilice el artículo perfektionkills en la respuesta de takteek. Esto todavía no parece apoyar el rastreo de algunos nuevos eventos HTML5, como "entrada".

Cuestiones relacionadas