閲覧中のページをXMLとして見るブックマークレットを作った。ウェブ・ページのソースをFirefoxのツリー表示なXMLビューワーで見るという意味。タイトルは適当。良い名前を思いつかなかった。Firebug使えって感じではある。

Bookmarklet: View as XML

うちのサイトでやるとツリーにならない。原因がまるでわかってないので直せそうかもわからない。W3C HTMLMozilla Japanとかで試すと良い。以下、ちょっと便利なところ。

内容は簡単でソースも短い。見やすく整形すると以下のようになる。

var xmlSerializer = new XMLSerializer();
var html = document.documentElement;
var src = xmlSerializer.serializeToString(html).replace(/></g, ">\n<");
var dataURI = "data:application/xml," + encodeURIComponent(src);
location.href = dataURI;

まずXMLSerializerを使ってソース全体を取得する。そして、"data" URLスキームを利用して強制的にapplication/xmlとして開いてやる。これだけ。最初XMLSerializerを知らなくて、body以下で妥協しようとしてた。

Internet Explorer対応とかはYQL使ってURLからソースを取得とかすると出来るかも。

ブックマークレット熱が再燃してる。もうネタ無いけど。