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

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

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

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

谢谢你;)

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

  • 来自这里的getAncestor()和来自这里的 getSelectionBoundaryContainerElement()的组合将完成这项工作
  • 这取决于你的意思是“选择开始于那个段落中的字符”。 如果段落内部可能有其他元素而不仅仅是一个文本节点,这会变得有点棘手。 你可以适应这个 。
  • 同样,这取决于你所说的“选择的长度”。 您可以将所选文本作为字符串获取并使用其length属性。
  • 查看选择开始的答案
  • 查看选择开始的答案

你需要做一些关于API的研究才能做到这一点,这不是坏事。

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

玩弄

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

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