微信浏览器下document.execCommand(“insertHTML“, false/true, 自己传递过来的值)不生效

前言
  1. 功能:用户往一个多行文本控件(textarea)中粘贴内容,但粘贴时会进行一些判断,比如去掉内容中的html,或者去掉空字符,或者不处理直接粘贴。
  2. 处理流程:
  • 监听paste事件,并阻止其默认行为,然后获取剪切板中的内容(e.clipboardData.getData(‘text/plain’))
  • 弹框,让用户选择哪种处理方式
  • 将处理后的内容放到多行文本中
  1. bug
    谷歌(76.0)、360安全浏览器(63.0.**)可以正常运行
    微信pc端内置的浏览器以及苹果手机中的微信浏览器,粘贴后,文本框中未出现内容
分析

查阅了一些资料,谷歌浏览器有些版本确实没有很好的支持document.execCommand()的某些功能;

不支持为false,支持为true,不兼容好像是可以抛错的

推荐一些工具:判断微信内置浏览器内核

解决

由于判断的逻辑属于一个公共函数,因此从公共函数中传递出处理后的字符串,再判断是否支持这个方法。

如果不支持,就将多行文本的value等于处理后的字符串就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值