2012-06-20 21 views
11

Podemos hacer que un texto esté resaltado. Intenté http://jsfiddle.net/WdeTM/ pero no funciona.Seleccionar texto en javascript

+0

¿Simplemente cambia el estilo del elemento? –

+2

"no funciona" o "no funciona como esperaba, pero no se han definido en esta pregunta"? – Hamish

+3

posible duplicado de [JQuery: seleccionar texto en un elemento (similar a resaltar con el mouse)] (http://stackoverflow.com/questions/985272/jquery-selecting-text-in-an-element-akin-to- highlighting-with-your-mouse) –

Respuesta

66

Ok, antes que nada, la pregunta debería ser: ¿cómo puedo seleccionar una pieza de texto usando JS?

resaltado es diferente de la selección de texto (Sí, su título es bueno!)

Esto debería ayudar:

Working demo

function selectText(element) { 
    var doc = document; 
    var text = doc.getElementById(element);  

    if (doc.body.createTextRange) { // ms 
     var range = doc.body.createTextRange(); 
     range.moveToElementText(text); 
     range.select(); 
    } else if (window.getSelection) { // moz, opera, webkit 
     var selection = window.getSelection();    
     var range = doc.createRange(); 
     range.selectNodeContents(text); 
     selection.removeAllRanges(); 
     selection.addRange(range); 
    } 
} 

selectText('foo'); 

acaba de encontrar el autor original para mi larga salvado sniplr fragmento , créditos: @Jason thread here.

+0

Este es también un buen enfoque para seleccionar para copiar, sin embargo, el solicitante debe saber que existe una diferencia entre * resaltar * y * seleccionar * – vol7ron

+0

. Al principio tenía problemas para entender la pregunta. Gracias a los comentarios bajo el OP. –

+0

esta respuesta es una copia y pegado directo de esta respuesta: http://stackoverflow.com/questions/985272/jquery-selecting-text-in-an-element-akin-to-highlighting-with-your-mouse – Jason

Cuestiones relacionadas