簡単なアラームアプリ
ちょっと必要が生じて、ブックマークレットを作ったのでさらしておく(謎)。
一応、Firefox 3.6.8で動作確認。
現在のタブで実行する版
整形したコード。
javascript:( function(){ var t=window.prompt('Input time',''); if(t){ var msg=window.prompt('Input message','It\'s time to...'); var tt=t.split(':'); tt[0]=parseInt(tt[0]); tt[1]=parseInt(tt[1]); tt[2]=parseInt(tt[2]); var now=new Date(); var target=new Date(); target.setHours(tt[0]); target.setMinutes(tt[1]?tt[1]:0); target.setSeconds(tt[2]?tt[2]:0); var m2='|'+t+':'+msg+'|'; document.title+=m2; setTimeout( function(){ alert(m2); var s = document.title; var i=s.indexOf(m2); document.title=s.substring(0,i)+s.substring(i+m2.length); }, (target.getTime()-now.getTime()) ); } } )();
ブックマークへの登録用。
javascript:(function(){var t=window.prompt('Input time','');if(t){var msg=window.prompt('Input message','It\'s time to...');var tt=t.split(':');tt[0]=parseInt(tt[0]);tt[1]=parseInt(tt[1]);tt[2]=parseInt(tt[2]);var now=new Date();var target=new Date();target.setHours(tt[0]);target.setMinutes(tt[1]?tt[1]:0);target.setSeconds(tt[2]?tt[2]:0);var m2='|'+t+':'+msg+'|';document.title+=m2;setTimeout(function(){alert(m2);var s = document.title;var i=s.indexOf(m2);document.title=s.substring(0,i)+s.substring(i+m2.length);},(target.getTime()-now.getTime()));}})();
アラーム用の新規タブ/新規ウィンドウを開く版
整形したコード。
javascript:( function(){ window.open( "javascript:( function(){ var t=window.prompt('Input time',''); if(t){ var msg=window.prompt('Input message','It\’s time to...'); var tt=t.split(':'); tt[0]=parseInt(tt[0]); tt[1]=parseInt(tt[1]); tt[2]=parseInt(tt[2]); var now=new Date(); var target=new Date(); target.setHours(tt[0]); target.setMinutes(tt[1]?tt[1]:0); target.setSeconds(tt[2]?tt[2]:0); var m2='|'+t+':'+msg+'|'; document.title+=m2; setTimeout( function(){ alert(m2); var s = document.title; var i=s.indexOf(m2); document.title=s.substring(0,i)+s.substring(i+m2.length); }, (target.getTime()-now.getTime()) ); } } )()", 'hhelibex:__alarm'); } )();
ブックマークへの登録用。
javascript:(function(){window.open("javascript:(function(){var t=window.prompt('Input time','');if(t){var msg=window.prompt('Input message','It\’s time to...');var tt=t.split(':');tt[0]=parseInt(tt[0]);tt[1]=parseInt(tt[1]);tt[2]=parseInt(tt[2]);var now=new Date();var target=new Date();target.setHours(tt[0]);target.setMinutes(tt[1]?tt[1]:0);target.setSeconds(tt[2]?tt[2]:0);var m2='|'+t+':'+msg+'|';document.title+=m2;setTimeout(function(){alert(m2);var s = document.title;var i=s.indexOf(m2);document.title=s.substring(0,i)+s.substring(i+m2.length);},(target.getTime()-now.getTime()));}})()",'hhelibex:__alarm');})();
難点は、当然のことながら、タイマーを実行しているタブ/ウィンドウを閉じてしまうと設定がおじゃんになってしまうこと。かといって、onunloadイベント拾って‥ということまでは面倒でやりたくなかったので。
携帯のアラームセットしておけばいいじゃん、と言われるとぐうの音も出ない。残念っ!(誰(謎))。