【发布时间】:2013-11-22 07:23:19
【问题描述】:
我正在尝试使用 coffeescript/javascript 创建一个范围,当用户滚动某些文本时返回几句文本。我将偏移量向后移动了 40 个位置,但这有时意味着进入前一个节点。我该如何正确地做到这一点?
我所拥有的(只要我不离开节点就可以工作):
//expanding a previously defined range
new_start = range.startOffset- 40
startNode = range.startContainer
range.setStart(startNode, new_start)
try
new_end = range.startOffset + 60
range.setEnd(startNode, new_end)
catch e
range.setEndAfter(startNode)
如您所见,我的代码不是很好,并且做了很多假设,所以当涉及到跨越这些节点时,有人可以引导我朝着正确的方向前进,我会非常高兴。
标记示例(很糟糕):
<div id="content"><p>
<strong>Title Stuffs<br>
Yep, a random break<br>
yes, another!</strong>
</p>
<p>
<a href="http://internet.co">http://itnernet.co</a>
</p>
<br>
<table>
<tbody>
<tr>
<td>
<img src="someimage">
</td>
</tr>
</tbody>
</table>
<p>
<br>
Blah blah blah<br>
<br>
more words, going to stop here. you get the idea.
</p></div>
这个问题是我previous questions 的一个后续问题。
【问题讨论】:
标签: javascript coffeescript range