Как я могу вызвать щелчок правой кнопкой мыши, если вы щелкнули левой кнопкой мыши по некоторому элементу HTML, используя jQuery? - PullRequest
8 голосов
/ 30 августа 2011

В принципе, я хочу открыть контекстное меню при щелчке левой кнопкой мыши.Есть ли способ сделать это с помощью jQuery?

Ответы [ 3 ]

6 голосов
/ 01 октября 2011

Вы не можете. У JavaScript нет такого доступа к браузеру. Вместо этого вы можете создать свое собственное контекстное меню и попытаться задать ему варианты поведения, которые вы хотите из обычного контекстного меню (Назад, вперед и т. Д.) Конечно, некоторые из них могут быть ограничены (например, копировать / вставить).

http://labs.abeautifulsite.net/projects/js/jquery/contextMenu/demo/

1 голос
/ 06 октября 2011

Вы не можете вызвать правый клик, но вы можете вызвать нажатие клавиши, используя .trigger()

Shift + F10 должен вызвать контекстное меню в Windows, что-то вроде ...

function openContextMenu() {
  jQuery.event.trigger({ type: 'keypress', which: 121, shiftKey: true });
}

Также есть кнопка контекстного меню (справа от CTRL на 104+ клавиатурах), которая , я думаю, может быть код клавиши 93 :

function openContextMenu() {
  jQuery.event.trigger({ type: 'keypress', which: 93 });
}

Обновление

На самом деле они просто имитируют событие - любые события JS для этого события запускаются, но фактический ключ не отправляется.

Это можно сделать с помощью объекта ActiveX:

// ActiveX object
var shell = new ActiveXObject("WScript.Shell");

// Send SHIFT+F10
shell.SendKeys("+{F10}");

Однако этот компонент помечен как небезопасный для сценариев и предназначен только для IE, так что решение действительно практично только для интрасетей и тому подобного.

1 голос
/ 05 октября 2011

Вы можете записать событие для щелчка правой кнопкой мыши и вызвать любое событие, которое хотите выполнить, щелчком правой кнопки мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...