相关疑难解决方法(0)

插入跨度后合并文本节点

我有一个扩展,我存储/检索用户选择的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>
Run Code Online (Sandbox Code Playgroud)

javascript jquery google-chrome-extension

28
推荐指数
3
解决办法
7077
查看次数