2011-12-31 21 views
5

Estoy escribiendo una extensión de Firefox para agregar un elemento de menú contextual y puedo obtener tanto el elemento DOM como el texto seleccionado, pero no puedo obtener la palabra no seleccionada en la que se activó el evento de clic derecho. Supongo que debe ser posible, ya que el corrector ortográfico lo hace, ¿o es una función especial incorporada?¿Hay alguna manera de obtener la palabra en el menú contextual en una extensión de Firefox?

¿Alguna idea? Aquí está el código para obtener los otros dos:

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

¿desea agregar un menú contextual personalizado? o usar el predeterminado? – Liran

+0

predeterminado. al hacer clic con el botón derecho, quiero que una nueva entrada sea capaz de decir cuál era la palabra debajo del cursor ... probablemente sea una ilusión :) – yuttadhammo

Respuesta

2

No conozco una manera super fácil de hacer esto. El corrector ortográfico solo funciona en elementos textarea de forma predeterminada (aunque también se puede modificar para que funcione en los campos de entrada). Como tal, esa funcionalidad muy probablemente esté encapsulada dentro del código interno para esos controles.

Sin embargo, encontré un pequeño fragmento de código que dice obtener la palabra bajo el cursor del mouse in an answer for another question aquí en StackOverflow. Simplemente hace uso del evento onmousemove para realizar un seguimiento de dónde se encuentra.

Desde una perspectiva de usabilidad, personalmente creo que es mejor forzar al usuario a seleccionar el texto que le interesa y luego operarlo. Ya existe la funcionalidad integrada para trabajar con el texto seleccionado (como usted señaló), y luego no hay preguntas para el usuario de lo que están hablando (aunque supongo que todo esto depende de cuál sea su objetivo final).

Cuestiones relacionadas