2011-08-30 14 views
8

Fondamentalmente, voglio aprire un menu contestuale sul clic sinistro stesso. C'è comunque da fare usando jQuery?Come posso attivare il clic destro se si fa clic con il tasto sinistro su un elemento html usando jQuery?

+0

Possibile duplicato: http://stackoverflow.com/questions/6250447/trigger-right-click –

+0

@James Allardice: -Queste risposte non funzionano nel mio caso. Ho già provato che solo allora ho postato questa domanda. –

+0

Funziona per me (in Chrome almeno): http://jsfiddle.net/interdream/EvZSA/3/ –

risposta

6

Non è possibile. JavaScript non ha quell'accesso al browser. Invece è possibile creare il proprio menu di scelta rapida personalizzato e provare a dargli le scelte di comportamento desiderate dal normale menu di scelta rapida (Indietro, Avanti, ecc.). Naturalmente, alcuni di questi potrebbero essere soggetti a restrizioni (come copia/incolla).

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

1

è possibile registrare evento per fare clic destro e grilletto qualsiasi evento che si desidera eseguire sul tasto destro del mouse.

1

Non è possibile attivare il tasto destro del mouse, ma è possibile attivare la pressione dei tasti utilizzando .trigger()

Shift + F10 dovrebbe attivare il menu contestuale su Windows, qualcosa di simile ...

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

Inoltre c'è un tasto menu contestuale (sulla destra prima CTRL sulla 104+ tastiere chiave) che I think might essere keycode 93:

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

Aggiornamento

In realtà questi simulano semplicemente l'evento: qualsiasi evento JS per quell'evento, ma la chiave effettiva non viene inviata.

È possibile farlo con un oggetto ActiveX:

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

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

Tuttavia tale componente è contrassegnato come non sicuri per lo scripting ed è IE soltanto, in modo che la soluzione è veramente solo pratico per intranet e simili.

+0

Non ho potuto far funzionare nessuna di queste soluzioni. Li hai provati? –

+0

@Jason Dean - no, sono davvero solo un punto di partenza, ma ho pensato che valesse la pena contribuire. – Keith

Problemi correlati