2011-12-31 9 views
5

Sto scrivendo un'estensione per Firefox per aggiungere un elemento del menu di scelta rapida e posso ottenere sia l'elemento DOM che il testo selezionato, ma non riesco a ottenere la parola non selezionata su cui è stato attivato l'evento del clic destro. Suppongo che debba essere possibile, dal momento che il correttore ortografico lo fa, o è una funzione incorporata speciale?C'è un modo per ottenere la parola dal menu contestuale in un'estensione firefox?

Qualche idea? Ecco il codice per ottenere gli altri due:

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

si desidera aggiungere un menu di scelta rapida personalizzato? o usare quello predefinito? – Liran

+0

predefinito uno. quando clicco con il tasto destro, voglio una nuova voce per poter dire quale sia la parola sotto il cursore ... probabilmente solo un pio desiderio :) – yuttadhammo

risposta

2

Non sono a conoscenza di un modo semplicissimo per farlo. Il correttore ortografico funziona solo negli elementi textarea per impostazione predefinita (sebbene possa essere modificato per funzionare anche all'interno dei campi di input). Come tale, tale funzionalità è molto probabilmente incapsulata all'interno del codice interno per quei controlli.

Tuttavia, ho trovato un breve snippet di codice che afferma di ottenere la parola sotto il cursore del mouse in an answer for another question qui su StackOverflow. Fa semplicemente uso dell'evento onmousemove per tenere traccia di dove sei.

Dal punto di vista dell'usabilità, personalmente penso che sia meglio costringere l'utente a selezionare il testo a cui è interessato, quindi operare su quello. Esiste già una funzionalità integrata per lavorare con il testo selezionato (come hai sottolineato), e quindi non c'è dubbio per l'utente di cosa stiano parlando (anche se penso che tutto dipenda dal tuo obiettivo finale).