2011-12-31 15 views
5

Bir içerik menü öğesi eklemek için bir Firefox eklentisi yazıyorum ve hem DOM öğesini hem de seçili metni alabilirim, ancak sağ tıklama etkinliğinin tetiklendiği seçili olmayan kelimeyi elde edemiyorum. Yazım denetleyicinin yaptığı ya da özel bir dahili fonksiyon olduğu için mümkün olması gerektiğini düşünüyormuyum?Bir firefox eklentisinde bağlam menüsü altındaki kelimeyi almanın bir yolu var mı?

Herhangi bir fikrin var mı? İşte diğer ikisini elde etmek için kod:

oncommand="if(gContextMenu.isTextSelected) rightClick(document.commandDispatcher.focusedWindow.getSelection().toString()); else rightClick(gContextMenu.target.innerHTML);" 
+0

Özel bir bağlam menüsü eklemek ister misiniz? veya varsayılanı kullanın? – Liran

+0

varsayılanı. Sağ tıklandığında, imlecin altındaki kelimenin ne olduğunu anlayabilmek için yeni bir giriş istiyorum ... muhtemelen sadece düşkün düşünmek :) – yuttadhammo

cevap

2

Bunu yapmanın çok kolay bir yolunun farkında değilim. Yazım denetleyicisi, yalnızca metin-metin öğelerinde varsayılan olarak çalışır (giriş alanları içinde de çalışmak üzere değiştirilebilir). Böylece, bu işlevsellik büyük olasılıkla bu kontrollerin iç kodu içinde kapsüllenir. Bununla birlikte, StackOverflow üzerinde in an answer for another question fare imleci altındaki sözcüğü almayı iddia eden kısa bir kod parçacığı buldum. Sadece bulunduğunuz yeri takip etmek için onmousemove olayını kullanır.

Kullanılabilirlik açısından baktığımda, kullanıcının ilgilendikleri metni seçmeye zorlamanın en iyi yolu olduğunu düşünüyorum. Seçilen metinle çalışmak için yerleşik işlevsellik zaten var (sizin de belirttiğiniz gibi), ve sonra kullanıcı hakkında ne konuştukları hakkında hiçbir soru yok (sanırım bu her şey son hedefinizin ne olduğuna bağlı).