为了账号安全,请及时绑定邮箱和手机立即绑定

如何在一个指定的div中选中字段?

如何在一个指定的div中选中字段?

回首忆惘然 2019-02-21 18:19:19
1.场景打算用vue写一个指令,并在使用指令的div中选中文字调用相应的功能。想到一个问题,如果用户选中文字跨越了该div,window.getSelection得到的是包含在该div的text以及div外的text,如何做个filter,提取我需要的text,但目前发现通过selection来查找有瓶颈,貌似走不通歪路子解决办法指定该div的user-selectcss特性,除了该元素外的元素则指定其user-select: none,根本上避免了用户选择不规范。问问大神们,有没有其他方式来对选中的文本做一个筛选,提取自己想要的文本?
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

Range API 很强大的, 有 compareBoundaryPoints 可以比较 range 的边界,所以 filter 是走得通的。

关键API:

  • window.getSelection

  • selection.getRangeAt

  • document.createRange

  • range.selectNode

  • range.compareBoundaryPoints

  • range.setStart / range.setEnd

且看例子,按我理解的实现的一个:

JSFiddle Range 操作示例


查看完整回答
反对 回复 2019-02-25
  • 2 回答
  • 0 关注
  • 659 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信