新しいページを開くたびに記録するGreasemonkeyスクリプトの応用

増井さんがWEB+DB PRESSに書かれた記事の中で「新しいページを開くたびに記録するGreasemonkeyスクリプト」が紹介されている。

Firefoxの場合、以下のようなGreasemonkeyスクリプトを登録しておけば新しいページを開くたびに記録することができますし、IEの場合は ブラウザで眺めてるURLを記録し続けるアプリを利用するとよいでしょう。

http://pitecan.com/articles/WebDBPress/LifeHack/

ソースはこんな感じ。

GM_xmlhttpRequest({
 method: 'GET',
 url: 'http://example.com/urllog.cgi' +
  '?url=' + encodeURIComponent(location.href) +
  '&title=' + encodeURIComponent(document.title)
}); 

JSで扱うデータはローカルのファイルに出力できないはずなのにどうやっているのかと思ったら、外部サイトのCGIにGETで渡しているのか。なるほど。

テストのエビデンス取得にも応用できそうな気がする。現在表示している画面のソースをエビデンス取得用のサーバに丸ごとPOSTとか。

ちなみに、GETやPOSTを利用する以外にもGreasemonkeyには次のような関数が用意されているらしい。

Greasemonkeyには以下の3 つの関数が用意されており、複数のセッション間でのデータのやりとりが可能になっています。

  • GM setValue():永続的なデータを書き込む
  • GM getValue():データを読み込む
  • GM xmlhttpRequest():他サイトと通信する

GM setValue() とGM getValue() が扱うデータは、実際にはローカルのブラウザに格納されています。その点ではCookie と似ていますが、異なるサイトに接続している場合も同じ値にアクセスできるところが違います。

http://pitecan.com/UnixMagazine/PDF/if0601.pdf