MozReplを使ってみる

仕事で使うために、水道管の図面を描くためのソフトを作って使っています。でも、このソフトは図面をVisioにOLEで描くようにしているので、あまり使える人がいないだろうなと思い公開していません。FireFoxCanvasSVGに出力するようにすればみんなが使えるなと思い、調べてみました。

最速インタフェース研究会でMozReplなるFireFoxプラグインを知ってこれが使えるんじゃないかなと思いました(http://la.ma.la/blog/diary_200609280045.htm)

色々、使ってみたのですが、Javascriptの勉強をしながらでなかなか進みません。とりあえず、documentオブジェクトを参照したり、書き換えたりすると、FireFoxでグラフィックスが出来そうなので、documentオブジェクトのDOMをダンプするプログラムを作ってみました。

function printNode(node, level) {
    if (node.childNodes == undefined) {
	return;
    }
    var len = node.childNodes.length;
    var indent = "";
    for (var i = 0; i < level; i++) {
	indent = indent + "  ";
    }
    for (var i = 0; i < len; i++) {
	repl.print(indent + node.childNodes.item(i).tagName);
	repl.print(indent + " id = " + node.childNodes.item(i).id);
	printNode(node.childNodes.item(i), level + 1);
    }
}

printNode(document, 0)

出力結果の一部はこんな感じです。

window
 id = main-window
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  script
   id = 
  stringbundleset
   id = stringbundleset
    stringbundle
     id = bundle_brand
    stringbundle
     id = bundle_shell
    stringbundle
     id = bundle_findBar
...

最終的には、最速インタフェース研究会で紹介しているようなtelnetを裏で使う方法で、rubyjavascriptのオブジェクトをシームレスに扱えるといいなと思っています。