2010-06-04 14 views
5

Estoy usando un complemento jquery de menú de contexto y necesito detectar qué navegadores son compatibles con esto. ¿Cómo puede hacerse esto?detectar si el navegador admite omisión de evento de clic derecho

oí algunas versiones de Opera y Safari no son compatibles con este botón derecho del ratón anulando negocio

+1

Esta visión general puede ser útil: http://www.quirksmode.org/dom/events/contextmenu.html –

Respuesta

4

Puede crear y disparar un evento contextual manualmente. Si configura el controlador adecuado, puede detectar si se llama o no al controlador.

Aquí es un ejemplo (usando jQuery para la creación de evento y de observación):

function testContextMenuEvent() { 
    var supported = false; 
    function handler(e) { 
    supported = true; 
    e.stopPropagation(); 
    } 
    $(document).bind('contextmenu', handler); 
    var evt = jQuery.Event("contextmenu"); 
    $(document).trigger(evt); 
    $(document).unbind('contextmenu', handler); 
    return supported; 
} 

Aquí es una página de prueba: http://jsfiddle.net/Hk4xA/6/

Edit2: el DOM ha striken de nuevo. Olvidé que createEvent no funciona en IE. Entonces, en su lugar, utilicé jQuery para la creación del evento.

+0

¡Agradable! ¿Pero crees que se puede adaptar a jquery? No estoy usando el prototipo – Jonah

+0

Por supuesto. Se utiliza el prototipo de las líneas 5, 7 y 11. La API de eventos de jQuery es simplemente nombres diferentes para métodos similares aquí: observe -> bind, stopObserving -> unbind, stop -> preventDefault. Ver mi edición para un ejemplo. – Alsciende

+0

Gracias a ton hombre – Jonah

Cuestiones relacionadas