2012-06-20 16 views
11

Possiamo fare in modo che venga evidenziato un testo. Ho provato http://jsfiddle.net/WdeTM/ ma non funziona.Seleziona testo in javascript

+0

Basta cambiare lo stile dell'elemento? –

+2

"non funziona" o "non funziona come mi aspettavo, ma non ho definito in questa domanda"? – Hamish

+3

possibile duplicato di [JQuery: selezione del testo in un elemento (simile all'evidenziazione con il mouse)] (http://stackoverflow.com/questions/985272/jquery-selecting-text-in-an-element-akin-to- evidenziazione-con-il-mouse) –

risposta

66

Ok, prima di tutto la domanda dovrebbe essere: come posso selezionare un testo utilizzando JS?

evidenziazione è diversa dalla selezione di testo (Sì, il titolo è buono!)

Questo dovrebbe aiutare:

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'); 

appena trovato l'autore originale per la mia lunga salvato sniplr frammento , credits: @Jason thread here.

+0

Questo è anche un buon approccio per selezionare per la copia, tuttavia il richiedente deve sapere che c'è una differenza tra * evidenzia * e * seleziona * – vol7ron

+0

Inizialmente avevo un problema a capire la domanda. Grazie ai commenti sotto l'OP. –

+0

questa risposta è una copia e incolla diretta di questa risposta: http://stackoverflow.com/questions/985272/jquery-selecting-text-in-an-element-akin-to-highlighting-with-your-mouse – Jason