2010-02-17 19 views
6

¿Puede obtener la palabra que el usuario ha hecho doble clic en? Lo he intentado en un controlador de eventos onDblClick pero selectionStart no está definido allí; y el evento onselect parece estar disponible solo para TextArea.¿Cómo obtener la palabra seleccionada al hacer doble clic en div, p, span?

+1

La única manera que he podido hacer esto es ajustar cada palabra en su propio SPAN. Yahoo sabe qué palabra se resalta cuando hace clic derecho. Y en IE, los aceleradores también conocen la palabra resaltada. ¿Están estos conectándose al navegador "debajo" de la capa javascript/DOM, a alguna API? – Tim

+0

Es decir, Yahoo Search en el menú contextual en Firefox. – Tim

Respuesta

8

Puede utilizar document.selection.createRange().text en IE, y window.getSelection().toString() en Firefox y WebKit, y adjuntar al controlador de ondblclick así:

document.ondblclick = function() { 
    var sel = (document.selection && document.selection.createRange().text) || 
      (window.getSelection && window.getSelection().toString()); 
    alert(sel); 
}; 

Referencias:

  • MSDN, para document.selection
  • MDN, para window.getSelection()
Cuestiones relacionadas