Javascript 在多个节点上创建范围
我试图使用coffeescript/javascript创建一个范围,当用户滚动某些文本时,该范围返回几句文本。我将偏移量向后移动40个位置,但是这有时意味着进入前一个节点。我如何使这一切正常发生 我拥有的(只要我不离开节点,就可以工作): 正如你所看到的,我的代码不是很好,并且做了很多假设,所以当涉及到跨越这些节点时,我会非常高兴有人能引导我朝着正确的方向前进 标记示例(非常糟糕):Javascript 在多个节点上创建范围,javascript,coffeescript,range,Javascript,Coffeescript,Range,我试图使用coffeescript/javascript创建一个范围,当用户滚动某些文本时,该范围返回几句文本。我将偏移量向后移动40个位置,但是这有时意味着进入前一个节点。我如何使这一切正常发生 我拥有的(只要我不离开节点,就可以工作): 正如你所看到的,我的代码不是很好,并且做了很多假设,所以当涉及到跨越这些节点时,我会非常高兴有人能引导我朝着正确的方向前进 标记示例(非常糟糕): 标题内容 是的,随机中断 是的,再来一杯 废话废话 更多的话,到此为止。你明白了。 此问题
标题内容
是的,随机中断
是的,再来一杯强>
废话废话
更多的话,到此为止。你明白了。
此问题是我的一位同事的后续问题。在这一行之后:
new_start = range.startOffset- 40
检查新的_启动是否为负,如果为负,则将其设置为零。代码如下:
new_start = range.startOffset - 40;
if(new_start < 0)
new_start = 0;
new_start=range.startOffset-40;
如果(新开始<0)
新开始=0;
这就是你目前的问题。不过你还有一个问题。您的端点也可能溢出当前文本。因此,您应该检查endOffset
new_start = range.startOffset- 40
new_start = range.startOffset - 40;
if(new_start < 0)
new_start = 0;