определить, поддерживает ли браузер переопределение события, вызываемого правой кнопкой мыши - PullRequest
5 голосов
/ 04 июня 2010

Я использую плагин jquery для контекстного меню, и мне нужно определить, какие браузеры поддерживают это. Как это можно сделать?

Я слышал, что некоторые версии оперы и сафари не поддерживают этот приоритетный бизнес, вызываемый нажатием правой кнопки мыши

1 Ответ

4 голосов
/ 04 июня 2010

Вы можете создать и запустить событие 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 для создания событий.

...