gpt4 book ai didi

JavaScript setSelectionRange() 方法和光标位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:36:28 25 4
gpt4 key购买 nike

我有以下一段 JavaScript,用于将 unicode 字符(下面由 txtToIns 变量表示)动态插入到文本正文中

elmt.value = elmt.value.substring(0, elmt.selectionStart) + txtToIns + " " + elmt.value.substring(elmt.selectionStart, elmt.selectionEnd) + elmt.value.substring(elmt.selectionEnd, elmt.value.length) + " ";
elmt.focus();
elmt.value = elmt.value.trim();

上面的光标总是在文本的末尾。有什么办法可以将它直接放在 txtToIns 之后吗?不,txtToIns.focus() 不会工作

最佳答案

我不确定您要对 textarea 值中的空格字符做什么,尤其是最后一个将在两行后再次被删除的字符,所以我忽略了下面代码中的空格。我也不确定您要对之前选择的文本(如果有)做什么,所以我假设您想用新文本覆盖它。

请记住,这在 IE < 9 中不起作用,它不支持 selectionStartselectionEndsetSelectionRange()

演示:http://jsfiddle.net/timdown/wPfVn/

代码:

var val = elmt.value;
var start = elmt.selectionStart, end = elmt.selectionEnd;
elmt.value = val.slice(0, start) + txtToIns + val.slice(end);
elmt.focus();
var caretPos = start + txtToIns.length;
elmt.setSelectionRange(caretPos, caretPos);

关于JavaScript setSelectionRange() 方法和光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180075/

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