Recent entries from same category
同じカテゴリに分類された最近10件のエントリです。
- RSS Ping
- Pingoat
- blogの掃除
- blogsnow
- Blog Hackers Conference 2004
- FeedMesh
- Blog Hacks: Hack #79
- コメント・スパム対策いろいろ
- 1000エントリまでの道
- weblogUpdates.pingはなかったことに
Posted at 2004-07-03T00:16:00+09:00 in Blog
miyagawaさんのエントリを見て、「TrackBack Auto-discovery用のRDFはコメントアウトされているから、innerHTMLとかじゃなくて、ドキュメントのノードを全てチェックし、nodeTypeが8かどうかをチェックすればコメントを抽出できるので、そこから正規表現かけてやればTrackBack ping URL探せそう!」と思ったのでシコシコ作ってみました。
JavaScriptのコードはこんな感じになっています。
var tburl;
var comments = new Array();
getComment();
for (var i = 0; i < comments.length; i++) {
if (comments[i].match(/trackback:ping="([^"]+)"/)) {
tburl = RegExp.$1;
break;
}
}
prompt('TrackBack ping URL', tburl);
function getComment(elm) {
if (!elm) elm = document.documentElement;
for (var i = 0; i < elm.childNodes.length; i++) {
if (elm.childNodes[i].nodeType == 8) {
comments[comments.length] = elm.childNodes[i].data;
} else if (elm.childNodes[i].nodeType == 1) {
getComment(elm.childNodes[i]);
}
}
}
getComment()が要素のノードを全部チェックし、定義済みのcommentsという名前の配列にコメントの中味をまとめてどんどん追加していく関数です。nodeTypeが1、すなわち要素の場合は、その要素からさらにgetComment()をよぶといういわゆる再帰的な仕組み。この関数が終了した後、今度はcommentsでループを回し、中味を、/trackback:ping="([^"]+)"/という正規表現でチェックしていきます。で、マッチしたらRegExp.$1でTrackBack ping URLを抜き出して、最後にプロンプトを表示ということ。
Bookmarklet: Extract TrackBack ping URL
FirefoxとIE6で動作を確認しました。まーこのままではあまり使い物になるとは思えないシロモノですが、これをベースに何かいろいろ出来るかも出来ないかも。
僕はほらローカルからPerlでTrackBack Auto-discoveryしちゃってるので・・・。誰かスゴイの作ってください。
同じカテゴリに分類された最近10件のエントリです。
JavaScriptに対応または有効な環境の場合、ここにはてなブックマークでのこのエントリに対するコメントが表示されます。
This page was last modified on 2004-07-06T13:47:47+09:00 (in 0.186 secs).