トップ «前の日記(2006-11-08) 最新 次の日記(2006-11-18)» 編集

2006-11-10 [長年日記]

_ MozRepl の使いどころって?

MozRepl - MozLab - Trac

なんか自分的にはちょっと微妙。

まず DOM の操作をしようと思っても日本語の文字列が unicode escape sequence で渡ってくるので terminal で表示できない。*1サンプルにあるように title って入れていきなり訳が分からなくなるのは結構悲しい。また、Firebug だと HTML collection なんかは配列っぽく自動的に表示してくれるがそういうこともない。まぁそんな感じで DOM いじりが便利ってわけでもない。

じゃあ Firebug より使いやすいコンソールなのかというと、rlwrap なんかで readline の恩恵にあずかることはできるが、Rhino のように長いコードがその場で書けるわけではない。Rhino なら例えば for 文の途中で改行してもそのまま書き続けられるが、MozRepl はその場で評価されてしまうのでやっぱり長いワンライナーにせざるを得ない*2

今のところいいなと思ったのは inspect() で、これがあればこのオブジェクトにはどんなプロパティあったっけー?と思ったときに放り込むだけでだいたいのことが分かる。

しかし Firefox で気軽にこれをやるととんでもない量のプロパティが列挙されることがよくあるので、more() とか grep() とかあったら便利かもしれないなと思った。screen 上でやってればスクロールバックさせることはできるけど、この操作ってなんだかトロくさくてやなんだよな。

まー遠隔の自動操縦が本来の狙いで、日本語の文字列を避けてできる範囲で使えばすごい便利なんだろうけどなぁ。細かいチェックを Firebug を併用して行って、自動化を MozRepl で行う。そんな感じか。

※ ちょっとずつ慣れてきた。Firebug と違って「タブを区別せずに現在の content の状態に対してアクセスできる」のは便利かもしんない。やっぱ grep() とかほしいな。

[2006-11-11 追記]

repl.search( /RE/, context )

でイケるっぽい。例えば

repl> repl.search( /f/, document )
defaultView
lookupPrefix
isDefaultNamespace
firstChild
insertBefore
prefix
createEntityReference
lastModified
referrer
preferredStylesheetSet
domConfig

こんな感じ。

repl.search( string, context )

だと完全一致になる。

repl> repl.search( 'first', document )
repl> repl.search( /first/, document )
firstChild

ふむふむ。

*1 手元の環境では唯一 LANG=ja_JP.UTF-8 + Terminal の設定を日本語(MacOS)にしたときに表示できた。が、入力できるわけではない。

*2 repl.js を読むと inputMode に multiline というものがあるのでやってみたが、どういうメリットがあるのかよく分からなかった。つか multiline で書いている内容を最終的に送信して評価させるために何をしなければならないのか分からなかった。例えば MS-DOS の「copy con file」なら C-z を送信とか、そういうことしなきゃいけないと思うんだけど、どうしたらいいんだろう?