Вы можете создать и запустить событие contextmenu вручную. Если вы установите правильный обработчик, вы можете определить, вызывается ли обработчик или нет.
Вот пример (использование jQuery для создания событий и наблюдения):
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;
}
Вот тестовая страница: http://jsfiddle.net/Hk4xA/6/
edit2 : DOM снова ударил. Я забыл, что createEvent
полностью не работает в IE. Поэтому вместо этого я также использовал jQuery для создания событий.