素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Firebugの$xや$$を使っていろいろ作ってるとGreasemonkeyにしようと思ったときに書き直さなきゃいけなくなって困る

Firebugには便利な関数があって、要素を簡単に特定できたりする。Greasemonkeyにはそんな関数はないので、Greasemonkeyスクリプトにしようと思ったときに困る。

便利な関数っていうのはXPath指定すると配列で結果が返ってくる$xや、CSS Selectorで指定できる$$関数。

とりあえず、$xについては

$x=function(xpath,doc){
var x=document.evaluate(xpath,doc||document,null,7,null),r=[];
for(var i=0;i<x.snapshotLength;i++)r.push(x.snapshotItem(i));
return r;
}

を入れればOK。(Firebugのとほぼ同じだから数値とかは返せない。FirebugはgetElementsByXPathと言うメソッドを定義してるし、エレメント以外は考えてない。)

$$は僕には無理。CSSセレクタXPathに直す部分とか、長すぎ。適当に書き直したほうがいい。Selectors APIがあれば事情は変わるんだけど。