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

发布于 2024-11-28 19:52:42 字数 221 浏览 2 评论 0原文

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

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

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

谢谢;)

I'm trying to accomplish something I believe should be simple to do in jQuery.

I have a long text in my website.
Whenever a user selects (highlights) a text, I need to get the following info:

  • The paragraph where the selection begins at
  • The char in that paragraph that the selection starts at
  • The length of the selection
  • The paragraph where the selection ends at (in case the highlight goes beyond one paragraph)
  • The char in that paragraph where the selection ends

Thanks ahead ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若有似无的小暗淡 2024-12-05 19:52:42

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

  • 此处getAncestor()的组合getSelectionBoundaryContainerElement() 来自 此处将执行以下操作这
  • 取决于“选择开始的段落中的字符”的含义。如果段落中可能包含其他元素而不仅仅是一个文本节点,则这会变得有点棘手。您可以调整这个
  • 同样,这取决于您所说的“选择的长度”的含义。您可以 获取选择文本作为字符串并使用其长度属性。
  • 查看选择开始的答案
  • 查看选择开始的答案

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

I think I've answered all of these on Stack Overflow before. In turn:

  • A combination of getAncestor() from here and getSelectionBoundaryContainerElement() from here will do the job
  • It depends what you mean by "char in that paragraph that the selection starts at". If the paragraph may have other elements inside rather than just one text node, this becomes slightly tricky. You could adapt this.
  • Again, this depends on what you mean by the "length of the selection". You could get the selected text as a string and use its length property.
  • See answers for selection start
  • See answers for selection start

You'll need to do a little study of the APIs to do this, which is no bad thing.

懒猫 2024-12-05 19:52:42

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

You need to use JavaScript for anything that deals with text selections. jQuery has no built in function for detecting where a selection begins or where it ends. Rangy http://code.google.com/p/rangy/ could be something you can use for such purpose.

转身以后 2024-12-05 19:52:42

查看

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

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

play around with

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

See an example on this site: http://www.codetoad.com/javascript_get_selected_text.asp

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文