jQuery - 获取选择的段落,长度等

时间:2011-08-10 07:37:46

标签: jquery selection highlight textselection

我正在尝试完成一些我认为在jQuery中应该很容易做的事情。

我的网站上有很长的文字。 每当用户选择(突出显示)文本时,我需要获得以下信息:

  • 选择开始于
  • 的段落
  • 该段落中选择以
  • 开头的字符
  • 选择的长度
  • 选择结束的段落(如果突出显示超出一个段落)
  • 该段落中选择结束的字符

非常感谢;)

3 个答案:

答案 0 :(得分:1)

您需要将JavaScript用于处理文本选择的任何内容。 jQuery没有内置函数来检测选择的开始位置或结束位置。 Rangy http://code.google.com/p/rangy/可能是您可以用于此目的的东西。

答案 1 :(得分:1)

我想我之前已经在Stack Overflow上回答了所有这些问题。反过来:

  • 来自heregetAncestor()和来自heregetSelectionBoundaryContainerElement()的组合将完成这项工作
  • 这取决于你所说的“选择开始的那段中的字符”。如果段落内部可能有其他元素而不仅仅是一个文本节点,这会变得有点棘手。您可以调整this
  • 同样,这取决于“选择的长度”的含义。您可以get the selected text as a string并使用其长度属性。
  • 查看选择开始的答案
  • 查看选择开始的答案

你需要对API进行一些研究才能做到这一点,这不是坏事。

答案 2 :(得分:0)

window.getSelection
document.getSelection
document.selection.createRange()

请参阅此网站上的示例:http://www.codetoad.com/javascript_get_selected_text.asp