Ho bisogno di ottenere l'area selezionata dall'utente di una textarea e quindi inserire i tag <a>
attorno ad esso.Metti un tag intorno al testo evidenziato dall'utente?
Io lo uso per ottenere l'utente area selezionata:
var textComponent = document.getElementById('article');
var selectedText;
if (document.selection != undefined)
{
textComponent.focus();
var sel = document.selection.createRange();
selectedText = sel.text;
}
// Mozilla version
else if (textComponent.selectionStart != undefined)
{
var startPos = textComponent.selectionStart;
var endPos = textComponent.selectionEnd;
selectedText = textComponent.value.substring(startPos, endPos)
}
Ora, so che posso fare una stringa di ricerca per il testo utente selezionato e inserire un tag intorno ad esso, ma cosa succede se l'utente selezionato il testo appare due volte nel testo, per esempio.
Ciao a te, addio a voi.
Se l'utente evidenzia il secondo "tu" per il collegamento che desidera, sicuramente una stringa sostituirà un tag attorno a ogni istanza di "tu".
Qual è il modo migliore per farlo?
Mi aspetto che una stringa sostituisca l'opzione "sostituisci tutto" o "sostituisci prima occorrenza". Se si utilizza "prima occorrenza" e si è in grado di iniziare dal punto di inizio selezione, ciò potrebbe essere sufficiente? – pjmorse
mantenere una variabile 'lastFocusedElement' può essere d'aiuto. Trova il testo in quell'elemento particolare. – Jashwant