富文本解析插件(uParse)解析代码块的处理办法

五级会员 站长
发表于uni-app分类
在开发uniapp应用的过程中遇到了uParse解析代码块的问题,查看了该插件的源码,发现该代码在生成node节点之前调用了wxDiscode.strDiscode方法,导致在解析html之前将代码块的内容解析了,从而导致了代码块被误解析的问题。


处理方法:

注释掉html2json.js文件内html2json方法的部分代码:

function html2json(html, customHandler, imageProp, host) { // 处理字符串 html = removeDOCTYPE(html); html = trimHtml(html); // 下面这行注释掉 // html = wxDiscode.strDiscode(html); ... }


在插件生成node节点之后进行代码块的解析:

... // 添加以下代码实现node节点内容解析 function strDiscode(nodes) { for (var i in nodes) { if (typeof(nodes[i]) == "object") { nodes[i] = strDiscode(nodes[i]); } if (i == 'text') { nodes[i] = wxDiscode.strDiscode(nodes[i]); } } return nodes; } results.nodes = strDiscode(results.nodes); return results; } export default html2json;


问题成功解决。

登录 分类