富文本解析插件(uParse)解析代码块的处理办法
在开发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;
问题成功解决。
${content}