私は自分のプロジェクトの1つでこのコードを使用しようとしています:
https://github.com/cemerick/jsdifflib
編集: 問題のコードへのリンクhttp://jsfiddle.net/BvFNf/3/
現在の形式のコードは次を使用します。
var byId = function (id) { return document.getElementById(id); }
base = difflib.stringAsLines(byId("baseText").value),
newtxt = difflib.stringAsLines(byId("newText").value),
ただし、代わりに名前フィールドを使用しようとしています:
var byName = function (name) { return document.getElementsByName(name); }
base = difflib.stringAsLines(byName("field1")[0].value),
newtxt = difflib.stringAsLines(byName("field2")[0].value),
追加の子コードは次のとおりです。
diffoutputdiv.appendChild(diffview.buildView({
baseTextLines: base,
newTextLines: newtxt,
//opcodes: opcodes,
baseTextName: "Base Text",
newTextName: "New Text",
contextSize: contextSize,
viewType: viewType
}));
' name="field1" '
htmlにも追加しました。
完全なソースはここにあります: Pastebinコード
Uncaught TypeError: Object #<NodeList> has no method 'appendChild' demo.html:69
diffUsingJS demo.html:69
onclick demo.html:98
返されるデータは、元の byID データ セットと同等です。助けてください。