Activador de evento de texto seleccionado en Javascript
¿Cómo activar una función de JavaScript cuando alguien selecciona un fragmento de texto determinado en una página con el mouse?
Además, ¿hay alguna forma de encontrar la posición del texto seleccionado en la página?
Actualización: para ser más claro, un fragmento de texto puede ser parte de una oración, una palabra, una frase o un párrafo completo.
Actualización : Mientras tanto, se creó un evento " Se seleccionó texto " (DOM) que es compatible con todos los navegadores actuales: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/select_event
Tenga en cuenta que este evento solo funciona en elementos de formulario , es decir, agregados a la HTMLInputElement
API
No hay ningún evento " Se seleccionó texto " (DOM)
, pero puede vincular un mouseup
evento al archivo document.body
. Dentro de ese controlador de eventos, puede simplemente verificar el
document.selection.createRange().text
o
window.getSelection()
métodos. Hay varios temas en Stackoverflow, como este javascript para obtener un párrafo de texto seleccionado en una página web .
No estoy seguro de lo que quieres decir con "encontrar la posición", pero para permanecer en mi mundo de ejemplo, puedes usar event propertys
para las posiciones X+Y del mouse.
Ejemplo: http://www.jsfiddle.net/2C6fB/1/
Aquí hay una combinación rápida:
$('div').mouseup(function() {
var text=getSelectedText();
if (text!='') alert(text);
});
function getSelectedText() {
if (window.getSelection) {
return window.getSelection().toString();
} else if (document.selection) {
return document.selection.createRange().text;
}
return '';
}
<div>Here is some text</div>
Demostración: http://jsfiddle.net/FvnPS/11/