Ueditor 1.4.3.3 uparse.js 全局样式污染 bug 解决方案

事发现场

使用uparse.js进行渲染时,导航栏的样式发生冲突,具体体现为横向排列的导航栏变为纵向(浮动失效)。

初步诊断

使用chrome浏览器的控制台来观察css样式异常,无果。

强力诊断

经过漫长的断点js读代码,发现是其中有一行代码少了css选择器的前缀,导致全局的li元素都添加了clear:both。

        utils.cssRule('list', selector +' ol,'+selector +' ul{margin:0;padding:0;}'+selector +'li{clear:both;}'+customCss.join('\n'), document); //此处原有bug (uparse.js 930行)

修改完毕的js文件

ueditor.parse.js
ueditor.parse.min.js

其他

读代码发现,ue动态生成了一个style样式表,里面写入了一些规则。但是为什么用chrome的控制台看不到实际的样式冲突呢?看来chrome和百度虽然是大佬级企业,还是不能做到零bug啊。