私は、ユーザーが選択したDOM構造のセクション(常に画面上のテキストの選択)を保存/取得している拡張機能を持っています。選択範囲を保存するときに、セクションをSPANタグに囲み、テキストを黄色で強調表示します。これにより、選択されたテキストの周りのDOM構造がさまざまなテキストノードに分割されます。これは、私がこの選択を復元しようとすると(ページを更新せずに)、DOM構造が変更されたときに問題を引き起こすため、問題が発生します。スパンを挿入した後にテキストノードを併合する
私の質問は、SPANを挿入した後にDOM構造が分割されないようにすることです。これを達成できない場合は、元の状態にSPANタグを削除した後、どのようにDOM構造を再構築しますか?
//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>
なぜこの点が重要ですか?あなたは特定の構造に依存する他のコードを持っていますか? – bernie
はい、あります。私はここにあるコード(http://home.arcor.de/martin.honnen/javascript/storingSelection1.html)を使用して、テキストの選択を保存/復元するのを手伝っています。 DOM構造が変更されていないことが必要です。 – Jon
おかげさまで、清算と幸運をありがとうございました – bernie