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.
Esta visión general puede ser útil: http://www.quirksmode.org/dom/events/contextmenu.html –