0

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

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

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

提前谢谢;)

4

3 回答 3

1

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

于 2011-08-10T08:32:27.953 回答
1

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

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

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

于 2011-08-10T12:57:16.697 回答
0

玩弄

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

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

于 2011-08-10T08:38:43.227 回答