wangEditor取消自动聚焦的另类解决办法

前言:本篇文章我们将介绍使用wangEditor富文本编辑器在移动端中打开页面的时候,总会自动定位到富文本编辑器上,弹出移动端的虚拟键盘,影响到整体布局的兼容问题。如果觉得作者写的不错,希望得到您的点赞/收藏/支持,如果有不同意见,欢迎下方评论区留言。

注:问题原因:目前发现是官方旧版本遗留下来的bug,不过官方也说的很明显了,不兼容移动端版本的。那么接下来我们就自己去寻求解决办法吧~~

话不多说,直接上菜。

一、官方提供的API(亲测无用doge)

自动 focus
编辑器初始化时,默认会自动 focus 到编辑区域。可通过如下操作,取消自动 focus 。

const editor = new E('#div1')

// 取消自动 focus
editor.config.focus = false

editor.create()

注:不会触发光标,但还是会弹出虚拟键盘。

二、在node_module中找到wangeditor/dist(release)/wangeditor.js将里面的自动聚焦代码注释。

// 手动注释掉
this.selection.restoreSelection();

注:因为不好维护,所以没进行测试。各位看完下面如果源码不一样大可一试~~

1、我的版本是4.7.11,搜索找到如下方法。

/**
 * 初始化编辑器选区,将光标定位到文档末尾
 * @param editor 编辑器实例
 * @param newLine 是否新增一行
 */
function initSelection(editor, newLine){}

其实官方已经做了取消自动聚焦的处理了,但就是还是会出现解决方法一的问题。
在这里插入图片描述

三、使用wangEditor v5版本(公测中,未进行测试是否有效)

wangEditor-v5
但是官方issues也有说到这问题,说是v5已经做了处理。

四、屏蔽默认键盘弹出(document.activeElement.blur()-亲测有效doge)

document.activeElement属性始终会引用DOM中当前获得了焦点的元素。元素获得焦点的方式有用户输入(通常是按Tab键)、在代码中调用focus()方法和页面加载。
优点:支持Android、iOS
缺点:需要添加额外的JS代码

const editor = new E('#div1')

editor.create()

// 取消自动focus且禁止虚拟键盘弹出
document.activeElement.blur();

注:只需在创建富文本后屏蔽默认键盘弹出即可,后续也不会出啥其他问题~~亲测有效哦

至此,使用 wangEditor取消自动聚焦的兼容就写好了!
最后来复习一下:如果觉得作者写的不错,希望得到您的点赞/收藏/支持,如果有不同意见,欢迎下方评论区留言。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值