CodeMirror MergeView页面出现黑色曲线,差异未高亮求助
解决CodeMirror MergeView样式错乱与差异不高亮问题
嘿,我看了你的代码和遇到的问题,这其实是个很常见的小疏漏——你漏掉了MergeView专用的样式文件,这就是导致页面出现黑色曲线、差异无法高亮的核心原因。
具体修复步骤:
1. 补上merge.css样式文件
MergeView需要专门的样式来渲染对比区域和差异高亮,你现在只引入了基础的CodeMirror样式和dialog样式,得把merge.css加上。在你的CSS引用部分添加这一行:
<link href="{% static 'home/scripts/codemirror/addons/merge.css' %}" rel="stylesheet">
注意要保证这个路径和你项目里merge.css的实际位置一致,它通常和merge.js放在同一个addons目录下。
2. 修正配置里的语法小问题
你的MergeView配置对象最后一个属性revertButtons : false,后面多了个逗号,虽然有些浏览器能兼容,但严格模式下会触发语法错误,建议去掉这个逗号:
var diff = CodeMirror.MergeView(target, { value: original, origLeft: null, orig: historic, lineNumbers: true, mode: "text/html", highlightDifferences: true, showDifferences: true, lineWrapping : true, revertButtons : false // 移除这里的多余逗号 });
3. 确认依赖完整性
再核对一下MergeView必需的所有依赖,确保你都加载了:
- 基础的
codemirror.js和codemirror.css diff_match_patch.js(负责计算文本差异)merge.js(MergeView的核心逻辑)merge.css(刚才补上的样式文件)
完成这些修改后,页面的黑色曲线会消失,两个文本的差异也会正常高亮显示,MergeView就能正常工作了。
内容的提问来源于stack exchange,提问作者AlexW
相关产品推荐
相关产品推荐

