超速攻で自分にGmailするbookmarklet

2006/11/11 追記
動かない人はhttp://d.hatena.ne.jp/mosle/20061111をお試しください


件名だけのメールをよく自分に送ったりするんですが、基本Gmail重くないですか?
速攻で自分にメール送りたいときに、躊躇してしまうんですね、僕。(何で自分にメール送るのっていう意見はさておき)

Gmailのcomposeウィンドウを開くブックマークレットはよく見かけますが、速攻で送りたいときにイラチな僕はローディング時間が待てないんですよ
そんなbookmarkletを探したんですが、全然見つけられなかったので作ってみました。(ものすごく誰かが作ってそうですが…)

そのブックマークレット

javascript:(function(){var to="送り先メールアドレス",a=prompt("subject?");if(a){var e=encodeURIComponent,c=String.fromCharCode,o=window.js,z=["$",""],l,A,B,C,D,E,i,j,s,t=RegExp;for(i=0;i<26;i++)z.push(c(65+i),c(97+i));l=z.length;for(i=0;i< l;i++){for(j=0;j< l;j++){var x=z[i]+z[j];if(x&&typeof(o[x])=="function"){s=o[x].toString();if(!A&&s.match(/_AT/)){A=o[x]();break;}if(!B&&s.match(/"jsid".+?([a-zA-Z$]+)/)){B=o[t.$1];break;}if(!C&&s.match(/XMLHttp/)){C=o[x]();break;}if(!D&&s.match(/"ik"/)){D=o[x]();break;}if(!E&&s.match(/this.cmid.+?([a-zA-Z$]+)/)){E=o[t.$1]++;break;}}if(A&&B&&C&&D&&E)break;}if(A&&B&&C&&D&&E)break;}var dt={view:"sm",at:A,jsid:B,to:e(to),subject:e(a)},h="";C.open("POST",D+"&cmid="+E);C.setRequestHeader("Content-Type","application/x-www-form-urlencoded");for(var i in dt)h+=i+"="+dt[i]+"&";C.send(h)}})();

(10/17 10:00ちょっと修正-そんなにサイズにこだわる理由はなかった…)
上記ブックマークレット赤字部分を自分のアドレスに変更して登録してください。("アカウント名[email protected]"とかするとよいです)


「Gmailの画面上で」実行すると、Javascriptプロンプトが開きます。文字を入力してOKを押すと、入力した文字が件名として指定したアドレスに送られます。やったね!
(すぐにInboxに反映されないかもしれませんが、ほってたら来ます-うまくいってたらの話)


あ、あと余裕で800バイト弱あるのでIE6ではこのままでは使用できません。FirefoxとSafari限定でお願いします。

前回同様、そんなにテストしたわけでないので、みなさんの環境で動くかどうかは知りません。
免責も前回同様でお願いします。責任は負いませんよ!ご了承ください
問題が起こったら使用をやめてくださいね


変数を汚染しないために、毎回GmailのJavascriptの関数をtoString()して正規表現スキャンしてます。
なんか無駄なので変数をキャッシュするバージョンとか、タイマー指定して入力中にスキャンとか(誰かやって)、そのほか本文も入力するバージョンとか色々考えました。気が向いたら書きます。
適当にアレンジしてください。

あとがき


長文をメモりたいときは前回の方法(自分とチャット)で、速攻でとりあえずメモりたいときは今回の方法で。
サイトのURLをメモる時はこちらの方法で。って使い分けるとよいかも