2011-12-31 11 views
5

Piszę rozszerzenie Firefox, aby dodać element menu kontekstowego i mogę uzyskać zarówno element DOM, jak i zaznaczony tekst, ale nie uda się uzyskać niezaznaczonego słowa, na którym zostało wywołane zdarzenie z kliknięciem prawym przyciskiem myszy. Zakładam, że musi to być możliwe, skoro sprawdza pisownię, czy jest to specjalna wbudowana funkcja?Czy istnieje sposób na uzyskanie tego słowa w menu kontekstowym w rozszerzeniu firefox?

Wszelkie pomysły? Oto kod, aby uzyskać pozostałe dwa:

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

Chcesz dodać niestandardowe menu kontekstowe? lub użyć domyślnego? – Liran

+0

domyślnie. kiedy kliknę prawym przyciskiem, chcę, aby nowy wpis był w stanie powiedzieć, co znaczy słowo pod kursorem ... prawdopodobnie tylko pobożne życzenie :) – yuttadhammo

Odpowiedz

2

Nie jestem świadomy bardzo łatwy sposób to zrobić. Moduł sprawdzania pisowni działa domyślnie tylko w elementach textarea (choć można go zmodyfikować tak, aby działał również w polach wejściowych). W związku z tym ta funkcja jest najprawdopodobniej zawarta w wewnętrznym kodzie dla tych elementów sterujących.

Jednak znalazłem krótki fragment kodu, który twierdzi, że słowo pod kursorem myszy in an answer for another question tutaj na StackOverflow. Po prostu korzysta z wydarzenia onmousemove, aby śledzić, gdzie jesteś.

Z punktu widzenia użyteczności osobiście uważam, że najlepiej zmusić użytkownika do wybrania tekstu, który go interesuje, a następnie operować na tym. Wbudowana funkcja pracy z zaznaczonym tekstem już istnieje (jak zauważyłeś), a następnie nie ma wątpliwości, o co chodzi (chociaż myślę, że to wszystko zależy od tego, jaki jest twój cel końcowy).

Powiązane problemy