创建从时间a到时间b的光标位置范围
javascript: create range from cursor position at time a to cursor position at time b
我得到了时间a的光标位置。然后我得到了时间b的光标位置。我想创建一个从时间a到时间b的光标位置的范围。时间a和b是ctrl -v(粘贴)的开始和结束。
我得到的光标位置是这样的——或者更确切地说是光标位置的范围。
sel = window.getSelection();
range_time_a = sel.getRangeAt(0).collapse(true);
但是,我如何使用range_time_a和range_time_b来创建一个新的范围,在range_time_a开始,在range_time_b结束?
我已经见过代码来获取带有光标的元素并在该元素中获取偏移量。我可以使用setStart()和setEnd,但似乎应该有一个更简单的方法,因为我已经有两个范围。
EDIT这实际上不会给你你想要的…这真的很复杂。我最初的建议commonAnscestorContainer。innerHTML会返回给你太多(最接近你选择的父容器的所有HTML)。
首先,您可能想要在用户按下ctrl+c时触发的eventHandler上触发这段代码(这里讨论:如何使用JavaScript检测ctrl+ V, ctrl+c ?)
如果你只想让文本被选中,这很容易做到:
range = window.getSelection().toString();
您不需要在不同的时间检查选择—您只需要在用户按ctrl-c时捕获它。
getSelection不是用来捕获选择的HTML的。您可以捕获文本&删除文本,移动到选区的开始/结束以及这里描述的一堆其他事情,但你不能抓取HTML。
问题的很大一部分是这不是任何标准规范的一部分(参见此链接)。另一个原因是它在浏览器之间不一致,或者在IE7/8中不支持。
如果你真的需要这样做,可以在这里找到一些非标准的例子,关于如何在范围选择之外获得更多信息-获取范围's的开始和结束偏移's相对于其父容器
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 在wordpress一定时间后更改自定义字段
- 自定义函数中的光标位置
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 门户网站:当地时间有多有用
- 显示时间的脚本
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 通过JSON&比较时间
- Javascript时间轨迹
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- 高库存时期时间与时区不匹配
- Jquery如何检查今天的时间大于使用给定时间
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 谷歌可视化时间线显示鼠标光标的时间
- 创建从时间a到时间b的光标位置范围