gpt4 book ai didi

javascript - 选择在javascript中的位置

转载 作者:可可西里 更新时间:2023-11-01 13:12:48 26 4
gpt4 key购买 nike

我试图找到所选文本在 div 中的位置。我提示用户在 div 中选择文本的子字符串,然后提交。我需要起点和终点的索引,但使用下面的策略没有成功。任何帮助将非常感激。

这是我拥有的功能,但无法正常工作:

if (typeof window.getSelection != 'undefined') {                                                                                                                                                                                                                            
var sel = window.getSelection();
var range = sel.getRangeAt(0);
var preCaretRange = range.cloneRange();
startOffset = preCaretRange.toString().length;
endOffset = startOffset + range.toString().length;
}

div 称为“myarea”。谢谢

最佳答案

你几乎做对了!
startOffset 导致它无法工作。
目前是:

var startOffset = preCaretRange.toString().length;

RHS 上的值 preCaretRange.toString().length 将返回已选择字符串的总长度,不是起始位置。要获得起始位置,您可以使用 范围存储的startOffset 属性。因此:

var startOffset = preCaretRange.startOffset;

关于优化的注意事项:您不需要将 range 克隆到 preCaretRange. 中。

document.body.addEventListener('mouseup', function () {
if (typeof window.getSelection != 'undefined') {
var sel = window.getSelection();
var range = sel.getRangeAt(0);

var startOffset = range.startOffset;
var endOffset = startOffset + range.toString().length - 1;

console.log("Selection starts at: " + startOffset);
console.log("Selection ends at: " + endOffset);
}
}, false);

这是一个 fiddle ,演示了它如何处理实际的文本选择:http://jsfiddle.net/Dp3qp/3/

关于javascript - 选择在javascript中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17427973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com