Shi*_*ver 17 javascript range textselection
我想通过使用Javascript发送location/anchorOffset和length/offset来选择文本.这是我的代码
var node = document.getElementById("content");
var range = document.createRange();
range.setStart(node, 0);
range.setEnd(node, 4); // here 0 and 4 is my location and length for the selection
// if my string is "This is test string" in my case its must select "This"
var selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
Run Code Online (Sandbox Code Playgroud)
但问题在于range.setStart和range.setEnd它没有像我预期的那样工作
Tim*_*own 16
在setStart()和setEnd()DOM范围的方法是很好的说明,所以你可以通过阅读找到答案的规范或MDN.
总而言之,如果要根据字符偏移指定范围边界,则需要处理文本节点而不是元素.如果您的元素包含单个文本节点,则将代码的第一行更改为以下内容将起作用:
var node = document.getElementById("content").firstChild;
Run Code Online (Sandbox Code Playgroud)
Cha*_*lie 13
如果您尝试选择jquery结果集,这是一个很好的解决方案
var $newSelection = $('.someElements');
var selection = window.getSelection();
var range = document.createRange();
range.setStartBefore($newSelection.first()[0]);
range.setEndAfter($newSelection.last()[0]);
selection.removeAllRanges();
selection.addRange(range);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28811 次 |
| 最近记录: |