bug复现流程

  1. 在chrome下打开发帖编辑器,在不碰正文输入框的前提下,按一下添加链接按钮,输入文字和链接,提交,产生报错
  2. 在chrome下打开发帖编辑器,在不碰正文输入框的前提下,按一下上传文件按钮,产生报错

以上bug无法在firefox浏览器复现。

原因分析

经群里讨论,得知此问题源自于不同浏览器对富文本输入框的getSelection()等操作表现出的差异,因此本PR通过加入适当的判断,排除部分type为none情况下selection api直接调用可能出现的错误问题,并提升了对现代浏览器有效的focus方法优先级,让execCommand可以正常运行。

感谢各位大佬们在过程中提供的帮助 @oldhuhu @老周部落 @Hmily_LCG

测试:检查单

  • x3.4+IE11
  • x3.4+IE10
  • x3.4+IE9
  • x3.4+IE8
  • x3.4+chrome
  • x3.4+firefox(legacy)
  • x3.4+firefox(quantum)
  • x3.4+edge(chakracore)
  • x3.5+IE11
  • x3.5+chrome
  • x3.5+firefox(legacy)
  • x3.5+firefox(quantum)
  • x3.5+edge(chakracore)