codemirror插件-文件比较组件merge
目的: 为了实现文件比较功能
引用文件
从github下载项目后,从以下路径引用文件,其中部分github分支中codemirror.js 需要运行项目,自动合成
<link rel=stylesheet href="../lib/codemirror.css">
<link rel=stylesheet href="../addon/merge/merge.css">
<script src="../lib/codemirror.js"></script>
<script src="../mode/xml/xml.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/diff_match_patch/20121119/diff_match_patch.js"></script>
<script src="../addon/merge/merge.js"></script>
配置参数
笔者在merge.js的 CodeMirror中注册了如下方法
var value, orig1, orig2, dv, panes = 2, highlight = true, connect = null, collapse = false;
CodeMirror.k_init=function(id,newData,oldData){
value=oldData;//左侧 老文件
orig1 = '';
orig2=newData;//右侧 新文件
initUI(); function initUI() {
if (value == null) return;
var target = document.getElementById(id);
target.innerHTML = "";
var dv = CodeMirror.MergeView(target, {
value: value,
origLeft: panes == 3 && !collapse && !connect ? orig1 : null,
orig: orig2,
lineNumbers: true, //行号
mode: "text/html",
//theme:'3024-night',//修改主题
styleActiveLine: true,
matchBrackets: true,
highlightDifferences: highlight,
connect: connect,
collapseIdentical: collapse,
revertButtons:false,//事件比较替换
});
}
};
然后在外部js中直接调用
CodeMirror.k_init('codeMirror',jsonString.now_file_content,jsonString.old_file_content)
效果如下

单个文件查看
CodeMirror.k_show=function(id,Data){
value=Data;//左侧 老文件
initUI();
function initUI() {
if (value == null) return;
var target = document.getElementById(id);
target.innerHTML = "";
var dv = CodeMirror(document.getElementById(id), {
value: value,
lineNumbers: true,
mode: "text/html",
//theme:'3024-night',
styleActiveLine: true,
matchBrackets: true,
});
}
};
CodeMirror.k_show('codeMirror',jsonString.now_file_content)
效果如下

配置心得:
1)修改主题
引用 codemirror源码中theme文件下的css,添加配置theme,例 theme:'3024-night'; //修改主题
2)修改不同部分背景颜色

若行内容不用,dom结构会有所不同,故我直接修改css, 兄弟选择器确定元素
.CodeMirror-merge-r-chunk+.CodeMirror-gutter-wrapper+.CodeMirror-line {
background-color: #888;
}
.CodeMirror-merge-r-chunk+.CodeMirror-gutter-wrapper+.CodeMirror-line span {
background-image: none;
}
3)高度修改
修改merge.css ,
.CodeMirror-merge, .CodeMirror-merge .CodeMirror {
height: 600px;
}
4)revertButtons参数 关闭中间替换事件,隐藏替换按钮
http://codemirror.net/demo/merge.html
codemirror插件-文件比较组件merge的更多相关文章
- codeMirror插件使用讲解
codeMirror是一款十分强大的代码编辑插件,提供了十分丰富的API,最近在项目中用到了这款插件,于是在这里给大家分享下使用方法和心得: codeMirror调用非常方便 首先在页面中载入插件CS ...
- AmazeUI(妹子UI)中CSS组件、JS插件、Web组件的区别
AmazeUI(妹子UI)是非常优秀的国产前端UI,现在来介绍一下AmazeUI中CSS组件.JS插件与Web组件的区别. CSS组件顾名思义就是仅使用CSS渲染而成的组件,而JS插件也很容易理解,就 ...
- 开源一款强大的文件服务组件(QJ_FileCenter)(系列一)
系列文章 1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一) 2. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明) 3. 开源一款强大的文件服务组件 ...
- 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明)
系列文章 1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一) 2. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明) 3. 开源一款强大的文件服务组件 ...
- 开源一款强大的文件服务组件(QJ_FileCenter)(系列三 访问接口与项目集成)
系列文章 1. 开源一款强大的文件服务组件(QJ_FileCenter)(系列一) 2. 开源一款强大的文件服务组件(QJ_FileCenter)(系列二 安装说明) 3. 开源一款强大的文件服务组件 ...
- js插件---JS表格组件BootstrapTable行内编辑解决方案x-editable
js插件---JS表格组件BootstrapTable行内编辑解决方案x-editable 一.总结 一句话总结:bootstrap能够做为最火的框架,绝对不仅仅只有我看到的位置,它应该还有很多位置可 ...
- 免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
前面介绍了六种.NET组件,其中有一种组件是写文件的压缩和解压,现在介绍另一种文件的解压缩组件SharpZipLib.在这个组件介绍系列中,只为简单的介绍组件的背景和简单的应用,读者在阅读时可以结合官 ...
- 关于codeMirror插件使用的一个坑
codeMirror插件可以做语法高亮渲染,但它操作过程是这样的:先从 textarea中读取值放到codemirror动态生成的div中,根据textarea中的换行个数确定行数,根据正则表达来高亮 ...
- jQuery上传插件,文件上传测试用例
jQuery上传插件,文件上传测试用例 jQuery File Upload-jQuery上传插件介绍http://www.jq22.com/jquery-info230 jQuery File Up ...
随机推荐
- 分数拆分(刘汝佳紫书P183)
枚举,由已知条件推得y大于k,小于等于2K AC代码: #include"iostream"#include"cstring"using namespace s ...
- 04001_HTML简单介绍
1.超文本标记语言 (1)超文本:比普通文本功能更加强大: (2)标记语言:使用一组标签对内容进行描述的一门语言,它不是编程语言! 2.HTML语法和规范 (1)所有的html文件后缀名都是以.htm ...
- numpy——基础数组与计算
In [1]: import numpy as np In [11]: # 创建数组 a = np.array([1,2,3,4,5]) In [12]: a Out[12]: array([1, 2 ...
- linux 下CPU数量、核心数量、是否支持超线程的判断
判断依据:1.具有相同core id的cpu是同一个core的超线程.2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores. 英文版:1.Physical id and c ...
- BZOJ2272: [Usaco2011 Feb]Cowlphabet 奶牛文字
n<=250个大写字母和m<=250个小写字母,给p<=200个合法相邻字母,求用这些合法相邻字母的规则和n+m个字母能合成多少合法串,答案mod 97654321. 什么鬼膜数.. ...
- 2.3 comparator(比较器)
1.comparator是java的一种机制,用来帮助我们给相同对象的不同属性排序 2.Comparable接口,是一个对象本身就已经支持自比较所需要实现的接口,如String,Integer自己就已 ...
- Ubuntu 12.04 之 虚拟主机的配置
Ubuntu 12.04 之 虚拟主机的配置 (1)打开etc/hosts文件 增加: 127.0.0.1 study.ubuntu.com 127.0.0.1 hello.ubuntu.com 12 ...
- 在子线程中更新UI,只能使用Handler
package com.pingyijinren.test; import android.os.Handler; import android.os.Message; import android. ...
- cogs——21. [HAOI2005] 希望小学
21. [HAOI2005] 希望小学 ★★ 输入文件:hopeschool.in 输出文件:hopeschool.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述 ...
- 谈谈hibernate的缓存
一,hibernate是什么技术? 1 hibernate是一个orm 就是对象关系映射框架. 及我们创建的实体类对象与数据库表中的数据是一一对应的关系. 我们可以改变对象信息从而改变数据库中的 ...