vue+element-ui如何实现聊天如何上传图标

用到的知识点为contenteditable

 contenteditable是一个枚举属性,表示元素是否可被用户编辑。如果可以,浏览器会修改元素的组件以允许编辑。

首先,在我看来,如果用input作为输入框,图标为<i>标签无法放入input里面,所以我们应该用div+contenteditable把div改成一个输入框,例如一下代码

<div contenteditable="true" ref="inpts" id="inpts" @keyup.enter="getAnswers" spellcheck="false"
  						autofocus style="width: 100%;height: 100px;"></div>

接下来我们把<i>标签放入到输入框的div中,例如一下代码

// 假设这是在一个Vue组件的方法中  
insertEmoji() {  
  // 获取引用和选择对象  
  let inpt = this.$refs.inpts;  
  let selObj = window.getSelection();  
  
  // 选择inpt元素的所有子元素并折叠选择到末尾  
  selObj.selectAllChildren(inpt);  
  selObj.collapseToEnd();  
  
  // 准备要插入的emoji图片HTML  
  let data = "your-emoji-class-here"; // 替换为实际的emoji类名  
  let emojiImg = `<i class='${data}'></i>`;  
  
  // 在选择的末尾插入HTML  
  inpt.insertAdjacentHTML('beforeend', emojiImg);

注意:我们把输入框的文字以及小图标渲染到对话框中应该用v-html才可以渲染出来

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值