2012-04-18 14 views
7

Estoy tratando de detectar si un determinado evento webkit 'webkitAnimationEnd' es compatible con el navegador, para ello me gusta comprobar si el evento existe. Pero no puedo entender cómo. ¿Alguien tiene una pista?JS ¿Hay alguna manera de verificar si existe un evento?

+0

es su pregunta acerca de este evento en particular, o en general? – Phrogz

+0

Se suponía general. – Mark

Respuesta

7

Detecting event support without browser sniffing sugiere que esto se debe trabajar;

'onWebkitAnimationEnd' in document.createElement('div'); 
+0

+1 Se ve bien, aunque _technically_ la presencia de un evento-manejador-como-propiedad no es lo mismo que saber que el navegador activará el evento. (El navegador podría exponer la propiedad pero tiene una implementación interrumpida, o podría tener fácilmente la implementación del evento sin el evento-manejador-como-propiedad.) – Phrogz

+0

Bueno, supongo que si el evento existe a través de este enfoque, el navegador apóyalo y dispara cuando sea apropiado. – Mark

+1

Hm, esto no se evalúa como "verdadero" en Chrome 18 o Safari 5. Podría ser un problema, es hora de profundizar. –

-3

¿Qué quiere decir con "es compatible"? Suponiendo que te refieres a "Se activará por el navegador bajo un conjunto particular de circunstancias", entonces simplemente necesitas recrear esas circunstancias (a través del script) y ver si se desencadenó un evento; puede usar un manejador de tiempo de espera para responder negativamente si el evento nunca fue manejado.

Detecta las características probándolas, no mirando a ningún otro lado.

+0

Sospecho que quiere un control en tiempo de ejecución para poder ejecutar una ruta de código diferente para los clientes que no admiten el evento. – Matt

+0

@Matt Sospecho que también, pero eso no es contrario a mi respuesta. Puede crear fácilmente los elementos/estilos/lo que sea necesario, registrar el controlador de eventos y un manejador de 'timeout', y determinar si su controlador de eventos alguna vez fue llamado. – Phrogz

+0

ahh, lo tengo. Pensé que estabas sugiriendo prueba en cada navegador a-prioi – Matt

Cuestiones relacionadas