Ho un'estensione dove sto memorizzando/recuperando una sezione della struttura DOM (sempre una selezione di testo sullo schermo) che l'utente ha selezionato. Quando sto memorizzando una selezione, accludo la sezione in un tag SPAN e evidenziamo il testo in giallo. Ciò fa sì che la struttura DOM attorno al testo selezionato divida in vari nodi di testo. Questo mi crea un problema poiché quando provo a ripristinare questa selezione (senza aggiornare la pagina), questo causa problemi poiché la struttura DOM è stata modificata.Unione di nodi di testo insieme dopo aver inserito l'intervallo
La mia domanda è come evitare che la struttura DOM si divida dopo aver inserito lo SPAN? Se questo non può essere raggiunto, come dovrei riassemblare la struttura DOM dopo aver rimosso il tag SPAN al suo stato originale?
//Insert the span
var sel = restoreSelection(mootsOnPage[i].startXPath);
var range = sel.getRangeAt(0).cloneRange();
var newNode = document.createElement('span');
newNode.className = 'highlightYellow';
range.surroundContents(newNode);
//Original DOM structure
<p>Hello there, how are you today</p>
//What the DOM looks like after insertion of SPAN
<p>
"Hello there, "
<span class="highlightYellow">how</span
" are you today"
</p>
Perché questo è importante? Hai altro codice che dipende da una struttura specifica? – bernie
Sì, lo so. Sto usando il codice trovato qui (http://home.arcor.de/martin.honnen/javascript/storingSelection1.html) per aiutarmi a memorizzare/ripristinare una selezione di testo. Richiede che la struttura DOM sia invariata. – Jon
Interessante, grazie per il chiarimento e buona fortuna – bernie