在跨度内包装用户突出显示的文本;处理重叠标签?

时间:2017-12-13 10:36:49

标签: javascript html5 tags

我试图突出显示页面上的文字,并且"记住"通过将其包裹在彩色范围内进行选择。例: 在突出显示之前:

<span>this is just <b>sample</b> text</span>

突出显示&#34;只是&#34;:

<span>this is <span class="user-selected">just</span> <b>sample</b> text</span>

然而,当前的实现允许重叠标签,例如,如果&#34;只是s&#34;突出显示结果将是

<span>this is <span class="user-selected">just <b>s</span>ample</b> text</span>

这是不受欢迎的,但似乎不可避免。我意识到浏览器可以ignore this,我可以修改选择以分成两个

<span>this is <span class="user-selected">just </span><b><span class="user-selected">s</span>ample</b> text</span>

但是,上面的示例已经简化,页面将涉及MathML表达式,因此突出显示的跨度可能涉及3个开始标记和17个结束标记。将跨度拆分为15个部分似乎过多,当它应该是单个部分时,所以我想知道这是唯一的选择,还是有其他选择?

0 个答案:

没有答案