iGoogleをいったん閉じて、再度オープンした場合、最後に選択したタブが選択されている状態でオープンしてほしい場合があります。
そんな時は、下のように組めば復元できます。
<?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" > <Require feature="setprefs" /> <Require feature="tabs" /> </ModulePrefs> <UserPref name="selectedTabIndex" datatype="hidden" default_value="0" /> <Content type="html"> <![CDATA[ <style type="text/css"> </style> <div id="id_meiji" style="display:none;"></div> <div id="id_taisho" style="display:none;"></div> <div id="id_showa" style="display:none;"></div> <div id="id_heisei" style="display:none;"></div>
<script type="text/javascript"> var tabs = new gadgets.TabSet(__MODULE_ID__,"id_meiji"); var prefs = new gadgets.Prefs();
gadgets.util.registerOnLoadHandler(lf_init);
function lf_init(){
tabs.addTab("明治","id_meiji",lf_selected); tabs.addTab("大正","id_taisho",lf_selected); tabs.addTab("昭和","id_showa",lf_selected); tabs.addTab("平成","id_heisei",lf_selected);
tabs.setSelectedTab(prefs.getInt("selectedTabIndex"));
}
function lf_selected(){ var selectedindex = tabs.getSelectedTab(); selectedindex = selectedindex.getIndex(); prefs.set("selectedTabIndex",selectedindex); } </script> ]]> </Content> </Module> |
最後に選択されたタブのindexを保持するために、<Require feature="setprefs" />というタグを追加します。
このタグを追加することで、様々なデータタイプを保持することができます。
リファレンスを参照すると、データタイプには、
があります。
そこで、今回は、hiddenを選択して、ModulePrefsタグの後に<UserPref name="selectedTabIndex" datatype="hidden" default_value="0" />というタグを追加します。
nameは、任意でオッケーです。(今回は、selectedTabIndexとしました。)
default_value属性は、初期値です。
設定されてしまえば、この値が使われることはありません。
JavaScriptに、var prefs = new gadgets.Prefs();がありますが、これを書くことによって、保存した値を参照したり設定したりすることができます。
prefs.getInt("selectedTabIndex")では、UserPrefのselectedTabIndexという名前の値をInt型として解釈して取りにいけーという指示を出しています。
他にもFloat型、String型として値を取りにいけーと指示することができます。
解釈できる値は
リファレンスを参考にしてください。
prefs.getInt("selectedTabIndex")で値を取得した後、
tabs.setSelectedTabメソッドで引数に指定されたindexのタブを選択します。
逆に選択されたtabのindexを保存するのは、prefs.set("selectedTabIndex",selectedindex)で行なっています。
これは何かというと、UserPrefタグのselectedTabIndexという名前の値をselectedindexに設定してくださいと指示をだしています。
タブが選択される都度、lf_selectedがコールされるので、その時に、選択されたタブのindexを保存しておけば問題ありません。
これで問題なく状態を保持しておけるかなーっと。
0 コメント:
コメントを投稿