首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]如何将内容插入到输入框光标所在位置

发布于 2024-08-30 23:46:33
0
380

我现在想将表情弹窗中的emoji或颜文字插入到当前光标所在位置该怎么办呢?我们可以使用 JavaScript 操作字符串的方式,将文本插入到指定的光标位置,接下来请看实际操作。需求如图第一步先给输入框...

我现在想将表情弹窗中的emoji或颜文字插入到当前光标所在位置该怎么办呢?我们可以使用 JavaScript 操作字符串的方式,将文本插入到指定的光标位置,接下来请看实际操作。

需求如图

第一步

先给输入框定一个ID

第二步

获取输入框元素

const textarea = document.getElementById("msg-content"); 

第三步

获取光标起始位置和结束位置

const startPos = textarea.selectionStart;
const endPos = textarea.selectionEnd;

第四步

获取光标前的文本和光标后的文本

  const beforeText = mssageText.value.substring(0, startPos);
  const afterText = mssageText.value.substring(endPos, mssageText.value.length);

最后

插入文本

mssageText.value = beforeText + text + afterText;

完整代码

const receiveMessage = (emoji) => {
  insertAtCursor(emoji.value);
};

const insertAtCursor = (text) => {
  const textarea = document.getElementById("msg-content");
  const startPos = textarea.selectionStart;
  const endPos = textarea.selectionEnd;
  const beforeText = mssageText.value.substring(0, startPos);
  const afterText = mssageText.value.substring(endPos, mssageText.value.length);
  mssageText.value = beforeText + text + afterText;
};

最终效果

评论
一个月内的热帖推荐
鸟云
Lv.1普通用户

275

帖子

20

小组

225

积分

赞助商广告
站长交流