iPhoneアプリの年齢早見というアプリがあって、ものすごく重宝しているのですが、業務中に使うことに躊躇してしまい(さぼっていると思われてしまうので)、でもものすごく便利なので使いたいなーっとなんとかならないものかと考えていたら、iGoogle gadgetにしてしまえばいいじゃーんと思い、急遽gadgetを作成しようかなと。
guiも似ているし、そもそもアイデア自体も作者さんのものなので、KS Planning Inc.さんのブログできちんとgadgetの作成の許可を申請し、きちんとオッケーを頂いたので問題なく作ることができます。
そこで、iPhoneのアプリと同時並行でガジェットの作成も進行します。
で、今日は、久々のガジェットネタ。
gadgetのパフォーマンスアップの一環として、loadしきってから、中のコンテンツを色々とセットしていきたい場合があります。
webサイトなどを作っている場合などは、JavaScriptのonloadをコールすればいいのですが、gadgetの場合、それに相当するものは、gadgets.util.registerOnLoadHandlerとなります。
実装としてこんな感じ
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="Test" directory_title="" title_url="http://widgmedia.com/" description="" author="maito.kuwahara" author_location="Japan" author_affiliation="" author_email="mai.musicfactory+gadgetfactory@gmail.com" author_link="http://temping-amagramer.blogspot.com/" screenshot="" thumbnail="" author_photo="http://widgmedia.com/gadget/my_profile_photo.png" height="350" > </ModulePrefs> <Content type="html"> <![CDATA[ <style type="text/css"> </style> <div id="hoge">カレー</div>
<script type="text/javascript"> gadgets.util.registerOnLoadHandler(lf_init);
/* onload時コールされる */ function lf_init(){ document.getElementById("hoge").innerHTML = "シチュー"; } </script> ]]> </Content> </Module> |
実行結果はこのような形となりました
きちんと「シチュー」という単語が挿入されています。
ちなみに、lambdaも使うことができます。
その場合は、こんな感じになります。(firefox 3で確認)
<?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="Test" directory_title="" title_url="http://widgmedia.com/" description="" author="maito.kuwahara" author_location="Japan" author_affiliation="" author_email="mai.musicfactory+gadgetfactory@gmail.com" author_link="http://temping-amagramer.blogspot.com/" screenshot="" thumbnail="" author_photo="http://widgmedia.com/gadget/my_profile_photo.png" height="350" > </ModulePrefs> <Content type="html"> <![CDATA[ <style type="text/css"> </style> <div id="hoge">カレー</div>
<script type="text/javascript"> gadgets.util.registerOnLoadHandler(function(){alert('hoge');}); </script> ]]> </Content> </Module> |
今回、igoogle上だけしか確認していないのですが、mixi上でも動作すると思います。
0 コメント:
コメントを投稿