JS在TextArea光标位置插入文字+移动光标到文字末尾

function insertText(obj,str) {

    if (document.selection) {

        var sel = document.selection.createRange();

        sel.text = str;

    } else if (typeof obj.selectionStart === 'number' && typeof obj.selectionEnd === 'number') {

        var startPos = obj.selectionStart,

            endPos = obj.selectionEnd,

            cursorPos = startPos,

            tmpStr = obj.value;

        obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);

        cursorPos += str.length;

        obj.selectionStart = obj.selectionEnd = cursorPos;

    } else {

        obj.value += str;

    }

}

function moveEnd(obj){

    obj.focus();

    var len = obj.value.length;

    if (document.selection) {

        var sel = obj.createTextRange();

        sel.moveStart('character',len);

        sel.collapse();

        sel.select();

    } else if (typeof obj.selectionStart == 'number' && typeof obj.selectionEnd == 'number') {

        obj.selectionStart = obj.selectionEnd = len;

    }


}

 

在网上看了很多用js 将光标移动到textarea的最后,但是看了很多垃圾方法,屁不管用,浪费时间,最近用到一个新方法

=IE支持document.selection
=Firefox,Chrome,Safari以及Opera都有selectionStart和selectionEnd属性

### 回答1: 光标所在位置插入字符 "vue" 可以使用以下代码: ``` document.execCommand('insertText', false, 'vue') ``` 请注意,这需要浏览器支持 `document.execCommand` 方法。 ### 回答2: 在文本编辑器中,如果要在光标所在位置插入字符"vue",可以按以下步骤操作: 1. 首先,确保光标位于插入点的位置。 2. 确定要插入字符的方式。可以是通过键盘输入,也可以通过鼠标选择相应的字符插入选项。 3. 如果选择了键盘输入的方式,可以直接在光标所在位置输入字符"v"。然后输入字符"u",最后输入字符"e",即可完成插入。 4. 如果使用鼠标选择字符插入选项的方式,可以将鼠标定位到要插入字符的位置,然后点击鼠标右键。在弹出的选项中选择插入字符的选项,然后选择字符"v",接着选择字符"u",最后选择字符"e",即可完成插入。 这样,当字符"vue"被成功插入后,光标会随之移动插入字符后的位置。 ### 回答3: 在光标所在位置插入字符"vue"的过程如下所示: 1. 首先,定位到光标所在的文本编辑区域或文本框。 2. 然后,判断光标位置,并获取光标所在的索引位置。 3. 接下来,将要插入的字符"vue"添加到光标位置的索引处。 4. 最后,更新文本内容,将插入的字符显示在光标位置。 具体的代码实现可以参考下面的示例(以JavaScript为例): ```javascript // 假设有一个id为"textArea"的文本编辑区域 var textArea = document.getElementById("textArea"); // 获取光标位置的索引 var cursorPosition = textArea.selectionStart; // 待插入的字符 var charsToInsert = "vue"; // 将待插入字符添加到光标位置的索引处 var newText = textArea.value.slice(0, cursorPosition) + charsToInsert + textArea.value.slice(cursorPosition); // 更新文本内容,将插入的字符显示在光标位置 textArea.value = newText; // 设置光标位置插入字符的末尾 textArea.selectionStart = cursorPosition + charsToInsert.length; textArea.selectionEnd = cursorPosition + charsToInsert.length; textArea.focus(); ``` 以上就是在光标所在位置插入字符"vue"的简单实现方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值