Gmailのフィルター条件入力欄を拡張する方法(改造版)

さて、前回Gmailのフィルタ整理の記事を書きましたが、そこで紹介したHack Attack:高度なGmailフィルターと永続検索の作り方の記事のなかに「Gmailのフィルター条件欄を拡大」というのがあります。

これは本来一行しか入力できないフィルタ入力欄を拡張して、いっぺんに数行入力できるようにする方法です。ただ、私の環境ではこれが上手く動きませんでした。

仕方ないので再びググりまして、下記ページを発見しました。

・persistent.info: Expanding Gmail's Filter Input

上記リンクではFirefox3用のユーザースタイルもあったのですが、これも我が家のFirefox4環境下では動きませんでした。

かわりに同ページにあったMatt Gardnerによるブックマークレットを採用してみました。
順調に動いていて良かった……と思いきや、既存のフィルタを編集しようとする場合、ブックマークレットをクリックした瞬間に既存のクエリが消えてしまいます。

これはさすがに不便だということで、軽く改造してみました。
jQueryはそんなに詳しくないので、見る人が見るとかなり下手な改造スクリプトかもしれませんが。


javascript:var s=document.createElement('script');
s.setAttribute('src','http://jquery.com/src/jquery-latest.js');
s.onload=function(){
var f = $('#canvas_frame').contents().find('input[type="text"]:eq(4)');
var h = f.parent(':first').html().toString();
var k = h.replace(/\<input class\=\".* nr\"\svalue\=\"/,'');
var k = k.replace(/\"\sid\=\".*\"\stype\=\"text\"\>/,'');
h = h.replace('<input','<textarea');
h = $(h).append(k);
h = $(h).append('</textarea>');
e = $(h).css({'height':'400px','width':'300px'});
f.after(e).remove();
};
document.getElementsByTagName('body')[0].appendChild(s);
void(s);

※テキストエリアの幅と高さはwidthおよびheightで調整できます。

これで既存のフィルタを編集する場合でも、入力済みのクエリを保持したまま編集できるようになると思います。

具体的には、上記スクリプトをコピーして、Firefoxの新規ブックマークのURL欄に貼り付け。あとはそのブックマークをブックマークツールバーにでも入れておくだけ。

フィルタ入力画面までいったら、ブックマークレットクリックでフィルタ入力欄が一気に大きくなります。

これにより、フィルタも以下のように記述できます。


from:{
aaa@*****.com
bbb@*****.org
ccc@*****.net
}

このようにかなりわかりやすくフィルタが作成できます。
メールアドレス3つ程度ではさほど差は感じませんが、10を越えるようなアドレスを一気にフィルタに登録する場合などは、かなり入力しやすいと思います。

Firefox4で動作確認済みです。
※利用によるトラブルに対しての責任は持てませんので自己責任でご利用くださいm(_ _)m