vue可编辑div_Vue实现可编辑div获取焦点

本文介绍如何在Vue中解决可编辑div失去焦点后无法插入内容的问题。通过设置contenteditable属性,利用document.querySelector获取div并调用focus()方法实现焦点获取。同时,分析了使用tabindex和HTML5 range对象的不足,并分享了掘金发沸点功能的类似实现。
摘要由CSDN通过智能技术生成

只要精神不滑坡,办法总比困难多

前言

当div设置contenteditable属性实现可编辑时,可以调用document.execCommand方法向可编辑div中插入内容。如果可编辑div没有点击或者失去了焦点,都无法实现将元素插入到可编辑div中,接下来就跟大家分享下,如何让div获取焦点,解决这一BUG。先看下我们最终实现的效果:

实现思路

上述gif图中表情插入div的具体实现,可阅读我的另一篇文章: Vue实现图片与文字混输

定义一个函数实现div获取焦点

给可编辑div元素绑定id属性

通过document.querySelector方法获取可编辑div元素

拿到可编辑div元素后调用focus方法实现div焦点的获取

点击表情图标时绑定点击事件指向第一步声明的函数

实现过程

在实现之前我们先看看掘金的发沸点功能,入图所示:掘金用的也是可编辑div实现,点击表情图标时,他也用了和我同样的方法让div获取焦点,然后插入图片到可编辑div。

可编辑div设置id

复制代码实现获取焦点函数

getEditableDivFocus: function (){

document.querySelector('#msgInputContainer').focus();

}

复制代码工具栏绑定toolbarSwitch函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值