Web Diff+GreaseMonkey

ちょっとしたドキュメントの diff をとりたいときに Web Diff というサービスを使わせてもらうことがあります。
わざわざ shell で diff するまでもないときなんかは大変便利でありがたいツールなのですが、連続で使用したいときに diff をとりたい Before と After のテキストを消すのが手間だなぁと感じていました。
テマといってもたいしたテマではないのですが、塵も積もればってことで GreaseMonkey で少しだけラクできるものを作ってみました。

どんなものを作ったのか

  • textarea に書いた Before と After のテキストを消す
  • diff した結果を消す

というものを作成しました。

具体的には、以下のような処理をしてくれるボタンを画面最下部に追加しました。

  • Before と After の textarea を空にして、再び Web Diff ボタンを押す

ソース

初めて GreaseMonkey を使ってみたのでヘンテコなソースかもしれないですが貼り付けておきます。

// ==UserScript==
// @name          webdiff_clean
// @description   clean diff word and result
// @include       http://labs.ceek.jp/diff/diff.cgi
// ==/UserScript==

(function() {
  var textArea_before = document.getElementsByName("input_1").item(0);
  var textArea_after = document.getElementsByName("input_2").item(0);

  var button_clean = document.createElement("input");
  button_clean.setAttribute("type", "button");
  button_clean.setAttribute("name", "clean");
  button_clean.setAttribute("value", "clean");
  button_clean.addEventListener('click', function(){
    textArea_before.value = "";
    textArea_after.value = "";
    var gform = document.getElementsByTagName('form').item(0);
    gform.submit();
  }, true);

  var div_button_clean = document.createElement("div");
  div_button_clean.appendChild(button_clean);
  document.body.insertBefore(div_button_clean, document.body.lastChild);
})();