8
A
回答
9
您可以尝试google-diff-match-patch项目,该项目提供强大的算法来执行同步纯文本所需的操作。
代码:
<div class="test">
<div id="oldStr" class="text">the stackoverflow question and answer version control is very well,i want to do this use javascript,but i don't know how to start,who can give some suggestion?thanks</div>
<div id="newStr" class="text">Stack Overflow's diff view is very good. I want to do this using javascript,but i don't know how to start,who can give some suggestion?thanks</div>
</div>
<input type="button" value="GO" onclick="launch()" />
<div class="test">
<div class="text" id="outputOldStr"></div>
<div class="text" id="outputNewStr"></div>
</div>
<script type="text/javascript">
var dmp = new diff_match_patch();
function launch() {
var text1 = document.getElementById('oldStr').innerHTML;
var text2 = document.getElementById('newStr').innerHTML;
dmp.Diff_EditCost = 8;
var d = dmp.diff_main(text1, text2);
dmp.diff_cleanupEfficiency(d);
var oldStr = "", newStr = "";
for (var i = 0, j = d.length; i < j; i++) {
var arr=d[i];
if (arr[0] == 0) {
oldStr += arr[1];
newStr += arr[1];
} else if (arr[0] == -1) {
oldStr += "<span class='text-del'>" + arr[1] + "</span>";
} else {
newStr += "<span class='text-add'>" + arr[1] + "</span>";
}
}
document.getElementById('outputOldStr').innerHTML = oldStr;
document.getElementById('outputNewStr').innerHTML = newStr;
}
</script>
3
有,做差异可视化的JavaScript库。这是几个例子,我发现:
我还没有尝试过任何人,所以很遗憾,我不能告诉你,这是最适合你的需要,但它可能值得检查出来。
更新
jsdifflib看起来很有希望,有a demo可用,你可以试试。
相关问题
- 1. Android:我如何创建Swipeable Stack视图?
- 2. 如何创建视差图?
- 3. Android - 如何使用回收视图创建一个像这样的视图?
- 4. Jest:比较值没有视觉差异
- 5. 我如何实现像ask.com这样的视觉主题?
- 6. 像Stack Overflow这样的站点如何在ASP.NET MVC中传递用户信息?
- 7. 如何从java applet视觉输出创建图像?
- 8. css视觉差异ids和类
- 9. 如何创建一个像默认Android EditContact视图一样的视图?
- 10. 如何创建这样的iOS表格视图?
- 11. 如何在sencha touch 2中创建这样的视图?
- 12. 视觉API:从拖放和java视觉api客户端结果的差异
- 13. 如何创建视觉分析器?
- 14. 我可以使用TFS提供的通知配置视觉差异视图吗?
- 15. 如何创建这个定制视图
- 16. 如何创建这个索引视图?
- 17. 我如何创建这个视图?
- 18. 如何为svn获得漂亮的视觉差异?
- 19. 不同图表之间的视觉差异
- 20. 创建一个特殊的视觉选择工具图像
- 21. 如何可视化Github差异视图中的每个字符差异?
- 22. 视觉样式独立绘图
- 23. perforce:如何从差异视图结帐?
- 24. 如何在git上执行3路视觉差异?
- 25. 如何创建圆形图库视图/图像切换器/图像视图...?
- 26. 视图使用xml创建的差异 - 使用代码
- 27. 误差的自定义视图创建视图
- 28. 从图像创建视频
- 29. Stack Overflow错误android?
- 30. 何时使用视觉差异与统一差异补丁文件?
是的,这只是我觉得 – artwl 2012-08-15 10:08:57
我通过这个去了,结束了创建一个包装库,以帮助在“演示文稿”使用需要'diff_match_patch ':https://github.com/arnab/jQuery.PrettyTextDiff – arnab 2013-01-24 11:29:32
'google-diff-match-patch'的角度包装:https://github.com/amweiss/angular-diff-match-patch – fiat 2016-04-28 05:01:43