2011-08-30 9 views
8

Zasadniczo chcę otworzyć menu kontekstowe po kliknięciu lewym przyciskiem myszy. Czy jest mimo to zrobić to za pomocą jQuery?Jak mogę uruchomić kliknięcie prawym przyciskiem myszy, jeśli kliknąłeś lewym przyciskiem na jakiś element html za pomocą jQuery?

+0

Możliwy duplikat: http://stackoverflow.com/questions/6250447/trigger-right-click –

+0

@James Allardice: -To odpowiedzi nie działają w moim przypadku. Próbowałem już tego, tylko wtedy napisałem to pytanie. –

+0

Działa dla mnie (przynajmniej w Chrome): http://jsfiddle.net/interdream/EvZSA/3/ –

Odpowiedz

6

Nie możesz. JavaScript nie ma tego dostępu do przeglądarki. Zamiast tego możesz utworzyć własne niestandardowe menu kontekstowe i spróbować nadać mu pożądane opcje zachowania w normalnym menu kontekstowym (Wstecz, Dalej, itp.). Oczywiście niektóre z nich mogą być ograniczone (np. Kopiuj/wklej).

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

1

można nagrywać wydarzenie dla prawym przyciskiem myszy i spustem cokolwiek wydarzenie, które chcesz wykonać na prawe kliknięcie.

1

Nie można wywołać prawym przyciskiem myszy, ale można wywołać naciśnięciem klawisza .trigger()

Shift + F10 powinno wywołać menu kontekstowego w Windows, coś jak ...

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

Również tam klawisz menu kontekstowego (po prawej przed CTRL na 104+ klawiszach), które I think might być keycode 93:

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

Aktualizacja

W rzeczywistości te symulują zdarzenie - wszystkie zdarzenia JS związane z tym wydarzeniem, ale faktyczny klucz nie zostanie wysłany.

Można to zrobić z obiektem ActiveX:

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

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

jednak, że komponent nie jest oznaczony jako bezpieczny dla skryptów i IE jest tylko tak, że rozwiązanie jest tylko bardzo praktyczne dla intranetu i tym podobne.

+0

Nie mogłem wykonać żadnego z tych rozwiązań. Próbowałeś ich? –

+0

@Jason Dean - nie, to naprawdę tylko punkt wyjścia, ale pomyślałem, że warto wnieść wkład. – Keith

Powiązane problemy