2011-08-30 15 views
8

Temel olarak, sol tıklamanın kendisinde bir içerik menüsü açmak istiyorum. Bunu jQuery kullanarak yapmak zaten var mı?jQuery'yi kullanarak bazı html öğelerini tıkladıysanız sağ tıklamayı nasıl tetikleyebilirim?

+0

Olası kopya: http://stackoverflow.com/questions/6250447/trigger-right-click –

+0

@James Allardice: -Şu cevaplar benim durumumda çalışmıyor. Bunu denedim, sonra sadece bu soruyu yayınladım. –

+0

Benim için (en azından Chrome'da): http://jsfiddle.net/interdream/EvZSA/3/ –

cevap

6

Yapamazsınız. JavaScript'in tarayıcıya erişimi yok. Bunun yerine kendi özel bağlam menünüzü oluşturabilir ve normal içerik menüsünden (Geri, ileri, vb.) Istediğiniz davranış tercihlerini vermeye çalışabilirsiniz. Tabii ki, bunlardan bazıları kısıtlanabilir (kopyala/yapıştır gibi).

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

1

sen doğru tıklama gerçekleştirmek istediğiniz her türlü olay doğru tıklama ve tetikleyici için olay kaydedebilir.

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

Ayrıca var ...

1

Sen sağ tıklayın tetikleyebilir, ancak Windows, gibi bir şey üzerinde bağlam menüsünü tetiklemesi gerektiğini .trigger()

Shift + F10 kullanarak bir tuşa basma tetikleyebilir keycode 93 olmak I think might (104+ anahtar klavyelerde CTRL önce sağda) bir bağlam menüsü tuşu:

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

Güncelleştirme

Aslında bunlar yalnızca olayı simüle eder - bu etkinlik yangına ilişkin tüm JS olayları, ancak asıl anahtar gönderilmez.

bir ActiveX nesnesi ile bunu yapabilirsiniz: bu bileşen kodlama için güvenli değil olarak işaretlenir ve bu çözüm yalnızca intranet ve benzeri gerçekten pratik yüzden IE, sadece edilir Ancak

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

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

.

+0

Bu çözümlerden herhangi birini çalıştıramadım. Onları denedin mi? –

+0

@Jason Dean - hayır, onlar gerçekten sadece bir başlangıç ​​noktası, ama bunun katkıda bulunmaya değer olduğunu düşündüm. – Keith

İlgili konular