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

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

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

Firefoxでもalt属性だけしかない画像をポップアップさせる

var images=document.evaluate('//img[@alt and not(@title)]',document,null,7,null);

for(var i=0;i<images.snapshotLength;i++){
image=images.snapshotItem(i);

image.setAttribute('title',image.alt);
}

title属性にalt属性の値をコピーするだけ。

document.evaluateの4個目の引数はけっこういろいろなものが指定できるようだ。
ページが見つかりません | Mozilla Developer Network
を参照。

ノードを取得するだけじゃないから、document.getElementsByXPathとかじゃないのかな。

p要素のテキストを取得する場合などはdocument.evaluate('//p/text()',document,null,XPathResult.STRING_TYPE ,null)ではなく
document.evaluate('//p/text()',document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE ,null)とする。
これは文字列ではなくテキストノードを取得しているから。ちょっとハマった。