gpt4 book ai didi

javascript - 如何将插入符号所在位置的值设置为一个值 [Javascript]

转载 作者:行者123 更新时间:2023-12-03 10:12:39 25 4
gpt4 key购买 nike

我想将插入符号索引处的字符值更改为“[br]”。
我的意思的例子:假设我们有一个文本框,用户输入一些文本,过了一会儿,他记起自己忘记了开始新行,因此他将插入符移动到他想要新行的位置,然后按 Return\Enter。我想仅使用 javascript 添加字符串“[br]”。这是我现在得到的:

<textarea id="textarea" onkeydown="javascript:DoLine();"></textarea>

这是 DoLine()功能:

    function DoLine() {
if (event.keyCode == 13) {
var text = document.getElementById('textarea').value;
text += "[br]";
if (text.indexOf("[br]") != text.length) {
var getTextAfter = text[text.lastIndexOf("[br]")] += "\r";
}
document.getElementById('textarea').value = text;
}
}

此代码在文本区域的末尾添加“[br]”,而不是插入符号所在的位置。我真的不知道如何获取插入符的索引,所以我只能转换 text var 到字符数组中,然后在插入符号的索引处添加“[br]”。那么有人知道如何让我的代码按照我想要的方式工作吗?或者知道如何获取插入符位置?
PS:插入符号我的意思是:
enter image description here
谢谢你:)

最佳答案

感谢@Tyr,我找到了答案,这个函数修复了它:

function insertTextAtCursor(el, text) {
var val = el.value, endIndex, range;
if (typeof el.selectionStart != "undefined" && typeof el.selectionEnd != "undefined") {
endIndex = el.selectionEnd;
el.value = val.slice(0, el.selectionStart) + text + val.slice(endIndex);
el.selectionStart = el.selectionEnd = endIndex + text.length;
} else if (typeof document.selection != "undefined" && typeof document.selection.createRange != "undefined") {
el.focus();
range = document.selection.createRange();
range.collapse(false);
range.text = text;
range.select();
}
}

关于javascript - 如何将插入符号所在位置的值设置为一个值 [Javascript],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30038077/

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