套件開發指南 - Googlebar Lite
出自 MozTW Wiki
rainbow video funny reflex tongue video steal my sunshine video realflight g2 serialz pinckney pharmacy kenwood car audio long music self so video mathcad 2001 crack sex and submission movies discount tickets napa auto parts naa autograph movie review poltergeists video lesbian freevideos mila kunis movie ÃÂ¥ÃÂÃÂæÃÂÃÂ: Creating a Firefox Toolbar Extension (Firefox 1.5)[Ã¥÷òæÃÂÃÂæìÃÂ]
äýÃÂèÃÂàBorn Geek
內容大綱
- 1 ÃÂ¥ÃÂÃÂèèà(Instruction)
- 2 çììäøÃÂçëàïüÃÂæúÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çà(Getting Started)
- 3 çììäúÃÂçëàïüÃÂÃ¥ûúçëÃÂæÃÂöæçÃÂ(Creating the Framework)
- 4 çììäøÃÂçëàïüÃÂÃ¥ûúæçÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂà(Structuring the Toolbar)
- 4.1 Ã¥÷Ã¥åà÷çîñèÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂà(The Toolbox and Toolbar)
- 4.2 Ã¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Toolbar Buttons)
- 4.3 äøÃÂæÃÂÃÂÃ¥üÃÂç÷èèüïÃÂ¥ÃÂà(Drop-Down Edit Box)
- 4.4 ÃÂ¥ÃÂïèêÿæÃÂôçÃÂÃÂççûéçÃÂæèÃÂèèà(Resizing Gripper)
- 5 çììÃÂ¥ÃÂÃÂçëàïüÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂü (Dynamic Development)
- 6 çììäúÃÂçëàïüÃÂéÃÂâæÃÂÿèãýäýà(Skinning the Toolbar)
- 6.1 æÃÂôæÃÂðæêÃÂæáÃÂçõÃÂæçà(Updating the File Structure)
- 6.2 æÃÂôæÃÂð Chrome æøàÃÂ¥ÃÂî (Updating the Chrome Manifest)
- 6.3 Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæêÃÂæáà(Creating the Image Files)
- 6.4 èÃÂÃÂçÃÂñäøòæÃÂÃ¥æèãÃ¥üÃÂèáèÃÂ¥ÃÂ¥ÃÂçÃÂèÃÂ¥ÃÂÃÂçÃÂà(Applying the Images with CSS)
- 6.5 äýÿçÃÂèæèãÃ¥üÃÂèáè (Using the Style Sheet)
- 7 çììÃÂ¥ÃÂ
ÃÂçëàïüÃÂäøûçèÃÂÃ¥üà(Scripting the Toolbar)
- 7.1 éÃÂãçõàXUL èÃÂàJavaScript (Tying XUL to JavaScript)
- 7.2 çÃÂúæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàäøÃÂÃÂ¥ÃÂÃÂèÃÂý (Adding Functionality to the Buttons)
- 7.3 æÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîçÃÂÃÂæóèæÃÂÃÂäúÃÂéàà(A Special Note About Button-Menu Buttons)
- 7.4 çÃÂúæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ÃÂ¥ÃÂÃÂèÃÂý (Adding Functionality to the Search Box)
- 7.5 ÃÂ¥ÃÂÃÂæàÃÂçýîÃ¥àÃ¥éÃÂøÃÂ¥ÃÂî (Dynamically Populating a Menu)
- 7.6 ÃÂ¥ÃÂÃÂæàÃÂÃÂ¥ÃÂàÃ¥àÃ¥å÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Dynamically Adding Toolbar Buttons)
- 7.7 éÃÂÃÂéÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Disabling and Enabling Buttons)
- 7.8 ÃÂ¥ÃÂÃÂæàÃÂéáïçäúèÃÂÃÂéÃÂñèÃÂÃÂæÃÂÃÂéÃÂà(Dynamically Showing and Hiding Buttons)
- 7.9 èîÃÂÃÂ¥ÃÂÃÂèÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäýÿçÃÂèèÃÂàèèÃÂÃ¥îà(Reading and Storing User Preferences)
- 8 çììäøÃÂçëàïüÃÂÃ¥ðÃÂèãà(Packaging the Toolbar)
- 8.1 æÃÂôæÃÂð Chrome æøàÃÂ¥ÃÂî (Updating the Chrome Manifest)
- 8.2 Ã¥ûúçëàJAR æêÃÂæáà(Creating the JAR File)
- 8.3 Ã¥ûúçëàXPI æêÃÂæáÃÂ(Creating the XPI File)
- 8.4 ÃÂ¥ÃÂ¥ÃÂäûöÃ¥îÃÂèãÃÂæøìèéæ (Installing Your Toolbar Extension)
- 8.5 ÃÂ¥ÃÂàéÃÂÃÂÃ¥ðÃÂèãÃÂéÃÂÃÂçèà(Speeding Up the Packaging Process)
- 8.6 (Ant Support)
- 9 çììÃÂ¥ÃÂ
ëçëàïüÃÂæøìèéæ (Testing Our Extension)
- 9.1 çÃÂö Firefox æÃÂÃÂæïÃÂæÃÂÃÂèéòæÃÂÃÂéúüèþæ (What to Do if Firefox Breaks)
- 9.2 æÃÂÃÂçÃÂèçÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂèèèÃÂÃ¥îà(Useful Browser Settings)
- 9.3 JavaScript äøûæÃÂçÃÂ¥ÃÂðçôÃÂéÃÂà(Logging to the JavaScript Console)
- 9.4 æèÃÂæúÃÂäøûæÃÂçÃÂ¥ÃÂðçôÃÂéÃÂà(Logging to the Standard Console)
- 9.5 æÃÂÃÂäûöçÃÂéäûöæèáÃÂ¥ÃÂÃÂæêâæÃÂÃÂ¥ÃÂ¥ÃÂè (The DOM Inspector)
ÃÂ¥ÃÂÃÂèèà(Instruction)
éÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèêêæÃÂÃÂÃ¥æÃÂäýÃÂÃ¥ûúçëàFirefox çÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûö(æÃÂïæÃÂô 1.5 æÃÂÃÂæÃÂôæÃÂðçÃÂÃÂçÃÂÃÂæÃÂì)ãÃÂÃÂ
éÃÂÃÂäûýæÃÂÃÂäûöæÃÂÃÂäþÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥æÃÂäýÃÂéÃÂÃÂçÃÂüçÃÂÃÂææÃÂèæÃÂãÃÂÃÂÃ¥ÿàèæÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ãÃÂÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂÃÂçôðçïÃÂãÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüæÃÂïäøÃÂéÃÂãçÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂçîáÃ¥ÿàéàÃÂÃ¥à÷ÃÂ¥ÃÂÃÂæÃÂÃÂäúÃÂÃÂ¥ÃÂúçäÃÂçÃÂÃÂçèÃÂÃ¥üÃÂèèÃÂèèÃÂçÃÂÃ¥èÃÂÃÂãÃÂÃÂ
æÃÂÃÂäøÃÂçèîæÃÂÃÂèáÃÂæÃÂïæÃÂÃÂÃ¥ûúèÃÂðäýàÃ¥ÿàéàÃÂçèÃÂÃ¥þîçÃÂÃÂæÃÂÃÂçÃÂÃÂïüÃÂXMLãÃÂÃÂJavaScriptãÃÂÃÂCSSãÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèáÃÂÃÂ¥ÃÂøçÿÃÂèõ÷äþÃÂéÃÂýäøÃÂéÃÂãïüÃÂèÃÂÃÂäøÃÂçöòè÷ïäøÃÂæÃÂÃÂèèñÃ¥äÃÂäøÃÂéÃÂïçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂøãÃÂÃÂ
Firefox 1.5 çÃÂÃÂÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüäøÃÂæÃÂÃÂÃ¥þÃÂÃ¥äççÃÂÃÂæÃÂùÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìæïÃÂÃ¥àÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂæÃÂìæÃÂôÃ¥îùæÃÂÃÂÃ¥ûúçëÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂàéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂéçÃÂèäúÃÂæÃÂùÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂèäûýïüÃÂÃ¥ÿàèæÃÂæÃÂÃÂïüÃÂæÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂúèîÃÂÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂèäûýãÃÂÃÂÃ¥æÃÂæÃÂÃÂäýàçÃÂüçÃÂþéÃÂïèêäçÃÂÃÂÃÂ¥ÃÂðæÃÂùïüÃÂæÃÂÃÂæÃÂïæÃÂÃÂäûûäýÃÂÃ¥ûúèÃÂðïüÃÂèëÃÂèÃÂïçõáäýÃÂèÃÂàãÃÂÃÂ
çììäøÃÂçëàïüÃÂæúÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çà(Getting Started)
éÃÂÃÂÃ¥çÃÂäùÃÂÃÂ¥ÃÂà(Before We Start)
ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂèãýäýÃÂçììäøÃÂäûýÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂäøÃÂäúÃÂéÃÂÃÂÃ¥øøæÃÂÃÂçÃÂèçÃÂÃÂæÃÂñèÃ¥ÿæÃÂïäýàÃ¥ÿàéàÃÂèæÃÂÃ¥àÃÂçÃÂÃ¥éÃÂÃÂçÃÂÃÂãÃÂÃÂ
äøÃÂèüÃÂæÃÂÃÂÃÂ¥ÃÂà(Tutorial Downloads)
ÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂàGooglebar Lite çÃÂÃÂçðáÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìãÃÂÃÂçÃÂúäúÃÂÃ¥ðÃÂéÃÂÃÂçèÃÂçÃÂÃÂÃÂ¥ÃÂøçÿÃÂæÃÂÃÂæÃÂÃÂÃ¥ùëÃÂ¥ÃÂéïüÃÂäýàÃÂ¥ÃÂïäûÃ¥äøÃÂèüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂÃÂçÃÂüçÃÂÃÂæÃÂìãÃÂÃÂÃ¥àéäûýÃÂ¥ÃÂïÃ¥þÃÂÃÂ¥ÃÂðçÃÂÃÂçÃÂÃÂæÃÂìïüÃÂ
- Example Toolbar XPI : éÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèæÃÂÃ¥ûúçëÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃ¥îÃÂèãÃÂçÃÂÃÂæÃÂìãÃÂÃÂ
- Example Toolbar Source Code: éÃÂÃÂäûý zip æêÃÂæáÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëÃ¥ûúçëÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥çÃÂçâüãÃÂÃÂ
æóèæÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂäûý xpi æêÃÂæáÃÂäùÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëäúÃÂÃÂ¥ÃÂÃÂÃ¥çÃÂçâüãÃÂÃÂæÃÂÃÂèáÃÂäøÃÂèÃÂÃÂèèÃÂïüÃÂäýàÃÂ¥ÃÂêèæÃÂäøÃÂèüàxpi çÃÂÃÂæêÃÂæáÃÂïüÃÂäøæçÃÂè zip çÃÂÃÂèçãÃ¥ãÃÂçøîçèÃÂÃ¥üÃÂèçãéÃÂàxpi æêÃÂïüÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂÃ¥àöäøÃÂçÃÂàjar æêÃÂãÃÂÃÂçììäúÃÂäûýæêÃÂæáÃÂÃÂ¥ÃÂêæÃÂïçÃÂúäúÃÂæÃÂùäþÿèÃÂÃÂÃ¥÷òãÃÂÃÂ
æÃÂÃÂçÃÂèçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂû (Useful References)
æÃÂÃÂÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàÃ¥ðÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃ¥æÃÂøçñäïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂøçÿÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüçÃÂÃÂéÃÂÃÂçèÃÂïüÃÂéÃÂÃÂäúÃÂçöòéàÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂÃ¥øøçÃÂÃÂæÃÂÃÂÃ¥ùëÃÂ¥ÃÂéïüÃÂæÃÂÃÂçÃÂøäÿáÃ¥ðÃÂäýàäþÃÂèêêäùÃÂæÃÂïãÃÂÃÂ(ÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéààçÃÂúÃÂ¥ÃÂÃÂäýÃÂèÃÂàæÃÂÃÂäþÃÂ)
- XUL Planet Element Reference(èÃÂñ)
- MozillaZine Extension Development Forum(èÃÂñ)
- Search the Firefox Source Code(èÃÂñ)
- roachfiend.com Extension Tutorial(èÃÂñ)
- Building an Extension - Mozilla Developer Center(èÃÂñ)
- ÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂàÃÂû Hello WorldâÃÂÃÂâÃÂÃÂéÃÂÃÂçÃÂüäýàçÃÂÃÂçììäøÃÂÃÂ¥ÃÂÃÂFirefoxæÃÂôÃ¥ñÃÂ(çðá)
- limodouçÃÂÃÂÃÂ¥ÃÂøçÿÃÂèèÃÂéÃÂà- XUL(çðá)
- The Art of IT ÃÂû ÃÂ¥ÃÂúæÃÂü Mozilla çÃÂÃÂæÃÂôÃ¥ñÃÂéÃÂÃÂçÃÂü(çðá)
Ã¥ÿàéÃÂÃÂÃ¥àÃÂÃÂ¥ÃÂøçÿÃÂçÃÂà(Learning the Prerequisites)
Ã¥æÃÂæÃÂÃÂäùÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂïüÃÂFirefox ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüéÃÂÃÂèæÃÂÃ¥àÃÂçÃÂÃ¥éÃÂÃÂäøÃÂéûÃÂéÃÂÃÂæÃÂü XMLãÃÂÃÂJavaScriptãÃÂÃÂÃÂ¥ÃÂÃÂCSS çÃÂÃÂæÃÂÃÂèáÃÂãÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂäøûéáÃÂéÃÂýæÃÂïçÃÂøçÃÂöÃ¥îùæÃÂÃÂäúÃÂèçãçÃÂÃÂïüÃÂæÃÂÃÂäùÃÂæÃÂÃÂæÃÂÃÂäþÃÂäúÃÂäøÃÂäúÃÂéÃÂÃÂæÃÂüéÃÂÃÂäøÃÂéààæÃÂÃÂèáÃÂçÃÂÃÂèêêæÃÂÃÂãÃÂÃÂ
äýàÃ¥ðÃÂæÃÂÃÂéÃÂÃÂèæÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ (Tools You Will Need)
çÃÂúäúÃÂèèÃÂèèÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂäýàéÃÂÃÂèæÃÂÃ¥ùþÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷èûÃÂéëÃÂïüÃÂéÃÂÃÂäúÃÂèûÃÂéëÃÂéÃÂýæÃÂïÃ¥àÃÂèòûÃÂ¥ÃÂïÃÂ¥ÃÂÃÂÃ¥þÃÂçÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂèèÃÂèèÃÂçÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂæêÃÂæáÃÂéÃÂýæÃÂïæèÃÂæúÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂÃÂ¥ÃÂàæÃÂäïüÃÂäýàéÃÂÃÂèæÃÂäøÃÂÃÂ¥ÃÂÃÂäøÃÂéÃÂïçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂç÷èèüïÃÂ¥ÃÂèãÃÂÃÂæÃÂÃÂÃ¥ü÷çÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂäýÿçÃÂèéáÃÂäüü Microsoft Word çÃÂÃÂçèÃÂÃ¥üÃÂãÃÂÃÂçöòè÷ïäøÃÂæÃÂÃÂäøÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúçÃÂÃÂÃ¥àÃÂèòûçèÃÂÃ¥üÃÂèèÃÂèèÃÂæÃÂÃÂÃÂ¥ÃÂÃÂç÷èèüïÃÂ¥ÃÂèïüÃÂéÃÂÃÂäúÃÂç÷èèüïÃÂ¥ÃÂèÃ¥ðÃÂäýàæÃÂÃÂéÃÂÃÂÃ¥øøÃ¥äççÃÂÃÂÃ¥ùëÃÂ¥ÃÂéïüÃÂäþÃÂÃ¥æÃÂèÃÂêÃÂ¥ÃÂÃÂçøîæÃÂÃÂãÃÂÃÂÃ¥ü÷èêÿèêÃÂæóÃÂçÃÂÃÂçÃÂÃÂãÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂáèÿÃÂçÃÂÃÂç÷èèüïÃÂ¥ÃÂèÃÂ¥ÃÂàÃÂ¥ÃÂë Crimson EditorãÃÂÃÂTextPadãÃÂÃÂÃÂ¥ÃÂàJCreatorãÃÂÃÂEmEditorãÃÂÃÂ
çììäúÃÂÃÂ¥ÃÂÃÂäýàæÃÂÃÂçÃÂèÃÂ¥ÃÂðçÃÂÃÂÃ¥÷Ã¥åà÷æÃÂï zip æêÃÂçÃÂÃÂÃ¥ãÃÂçøîèûÃÂéëÃÂãÃÂÃÂéÃÂÃÂçÃÂöæÃÂÃÂÃ¥àöäûÃÂéÃÂÃÂÃ¥äÃÂæÃÂÃÂçÃÂèçÃÂÃÂÃ¥÷Ã¥åà÷ïüÃÂÃÂ¥ÃÂÃÂæÃÂï 7-ZipãÃÂÃÂÃÂ¥ÃÂàWinRARïüÃÂäýÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúúæÃÂïäýÿçÃÂè WinZipãÃÂÃÂçÃÂöÃ¥ðÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂèÃÂ¥ÃÂðéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ãÃÂÃÂÃ¥æÃÂæÃÂÃÂäýàæÃÂÃÂçîÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥äÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂéÃÂÃÂçÃÂüïüÃÂæÃÂÃÂÃ¥ûúèÃÂðäýàæÃÂþæÃÂÃÂÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂäûÃÂéÃÂâçÃÂÃÂÃ¥ãÃÂçøîÃ¥÷Ã¥åà÷ãÃÂÃÂäýÿçÃÂèÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥èüÃÂæÃÂÃÂÃÂ¥ÃÂðÃ¥ðÃÂÃ¥ðÃÂèãÃÂéÃÂÃÂçèÃÂèÃÂêÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂäùÃÂçÃÂÃÂäøÃÂäýàÃ¥äçéÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂ
æêÃÂæáÃÂçõÃÂæçÃÂäýÃÂÃ¥ñà(File Structure Layout)
ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüéÃÂÃÂèæÃÂçÃÂùÃ¥îÃÂçÃÂÃÂÃ¥àçéÃÂèçõÃÂæçÃÂïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂçâúÃ¥îÃÂéÃÂÃÂäøÃÂæÃÂÃ¥æÃÂïæÃÂãçâúçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂÃ¥ðÃÂäøÃÂæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂèãÃÂÃÂéæÃÂÃ¥àÃÂïüÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥ûúçëÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂÃÂçÃÂîéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäýÿçÃÂè TutToolbar çÃÂöäýÃÂçÃÂîéÃÂÃÂÃÂ¥ÃÂÃÂçèñ(éÃÂÿÃ¥àÃÂäýÿçÃÂèçéúçÃÂýæÃÂÃÂÃÂ¥ÃÂÃÂ)ãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂðÃ¥ûúçëÃÂÃ¥åýçÃÂàTutToolbar çÃÂîéÃÂÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçììäúÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂÃÂ¥ÃÂýÃÂ¥ÃÂÃÂçÃÂú chrome (äýÿçÃÂèÃ¥ðÃÂÃ¥ïë) ãÃÂÃÂæÃÂâçÃÂöæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéúüÃÂ¥ÃÂÃÂæÃÂáÃ¥ûúçëÃÂçÃÂîéÃÂÃÂïüÃÂéÃÂãÃ¥ðñÃÂ¥ÃÂÃÂäþÃÂÃ¥ûúçëÃÂçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂçïüÃÂéÃÂÃÂæìáÃÂ¥ÃÂè chrome çÃÂîéÃÂÃÂèãáÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñçÃÂú content çÃÂÃÂçÃÂîéÃÂÃÂ(äýÿçÃÂèÃ¥ðÃÂÃ¥ïë)ãÃÂÃÂéÃÂÃÂèãáæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂîéÃÂÃÂçõÃÂæçÃÂçÃÂÃÂèõ÷äþÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüÃÂ
+- TutToolbar/ +- chrome/ +- content/
æÃÂÃÂèÃÂàæÃÂï
TutToolbar/ TutToolbar/chrome/ TutToolbar/chrome/content/
çììäúÃÂçëàïüÃÂÃ¥ûúçëÃÂæÃÂöæçÃÂ(Creating the Framework)
ÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæÃÂöæçÃÂæÃÂïçÃÂèäþÃÂÃÂ¥ÃÂÃÂèèô Firefox ÃÂ¥ÃÂ¥ÃÂäûöæÃÂïÃ¥æÃÂäýÃÂèâëÃ¥ûöäüøçÃÂÃÂïüÃÂæêÃÂæáÃÂçÃÂÃÂçõÃÂæçÃÂãÃÂÃÂèâëèêðÃ¥ûúçëÃÂãÃÂÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃ¥àèçÃÂÃÂÃÂ¥ÃÂïäøÃÂäûãèÃÂÃÂ(GUID)ãÃÂÃÂÃÂ¥ÃÂè Firefox 1.5 éÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìïüÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂèäûýæÃÂÃÂÃ¥þÃÂÃ¥äççÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæÃÂìÃÂ¥ÃÂè 1.0.x çÃÂÃÂæÃÂïÃ¥þÃÂæòÃÂéÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥÷çïüÃÂÃÂ¥ÃÂè 1.5 çÃÂÃÂÃ¥÷òçöÃÂèîÃÂÃ¥þÃÂæÃÂôæÃÂôæýÃÂãÃÂÃÂæÃÂôçðáÃÂ¥ÃÂîãÃÂÃÂ
Ã¥îÃÂèãÃÂæøàÃÂ¥ÃÂî (Installer Manifest)
éÃÂÃÂäûýæøàÃÂ¥ÃÂîæÃÂïçÃÂèäþÃÂæÃÂÃÂäþàFirefox éÃÂÃÂæÃÂüÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂçôðçïÃÂãÃÂÃÂæÃÂÃÂäøÃÂäúÃÂéÃÂÃÂèæÃÂçÃÂÃÂéààçÃÂîæÃÂþçýîÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂçâúÃ¥îÃÂéÃÂÃÂéÃÂèäûýæÃÂïæÃÂãçâúçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèäýàçÃÂÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂèãáïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂæáàinstall.rdf ãÃÂÃÂçÃÂöäýàÃ¥ûúçëÃÂÃ¥åýéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂäýàæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂæèãçÃÂÃÂçõÃÂæçÃÂïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome/ +- content/
ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂãÃÂÃÂæÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂç÷èèüïçÃÂÃÂéÃÂèäûýÃ¥÷òçöÃÂèâëçêÃÂéáïÃÂ¥ÃÂúäþÃÂäúÃÂïüÃÂæòÃÂæÃÂÃÂèâëçêÃÂéáïçÃÂÃÂéÃÂèäûýæÃÂïäøÃÂÃÂ¥ÃÂïäûÃ¥äÿîæÃÂùçÃÂÃÂãÃÂÃÂæÃÂÃ¥èÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂéÃÂÃÂäûýæêÃÂæáÃÂçÃÂÃÂÃ¥àçÃ¥îùïüÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂèçãéÃÂÃÂæïÃÂÃÂ¥ÃÂÃÂéÃÂèäûýçÃÂÃÂçôðçïÃÂïüÃÂèÃÂÃÂäøÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂç÷èèüïÃ¥ñìæÃÂüèÃÂêÃ¥÷ñçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂ
<?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <!-- Required Items --> <em:id>yourextension@yoursite.com</em:id> <em:name>Your Extension's Name</em:name> <em:version>1.0</em:version> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>1.5</em:minVersion> <em:maxVersion>1.5.0.*</em:maxVersion> </Description> </em:targetApplication> <!-- Optional Items --> <em:creator>Your Name</em:creator> <em:description>A description of the extension</em:description> <em:homepageURL>http://www.yoursite.com/</em:homepageURL> </Description> </RDF>
ÃÂ¥ÃÂèæÃÂÃÂäøÃÂéÃÂâçììäøÃÂèáÃÂèáèçäúéÃÂÃÂæÃÂïäøÃÂäûý XML æàüÃ¥üÃÂçÃÂÃÂæêÃÂæáÃÂãÃÂÃÂçììäúÃÂèáÃÂïüÃÂäûÃÂ¥ <RDF> éÃÂÃÂéàÃÂçÃÂÃÂïüÃÂæÃÂïéÃÂÃÂäûýæÃÂÃÂäûöçÃÂÃÂÃÂ¥ÃÂúæÃÂìÃ¥àÃÂçôà(root element)ãÃÂÃÂÃ¥îÃÂçÃÂÃÂèòìäûûæÃÂïèþèÃÂ¥ÃÂÃ¥éÃÂÃÂéÃÂèäûýæÃÂï RDF (Resource Description Framework) æàüÃ¥üÃÂãÃÂÃÂäøÃÂäøÃÂÃÂ¥ÃÂÃÂæèÃÂçñä(Tag) <Description> ÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðæÃÂïçÃÂèäþÃÂèþèÃÂ¥ÃÂÃ¥çÃÂúÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂîãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂäùÃÂÃÂ¥ÃÂóçÃÂÃÂæÃÂñèÃ¥ÿéÃÂýçõÃÂæÃÂÃÂäúÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂçììäøÃÂéÃÂèäûýÃ¥ÿàéàÃÂèæÃÂç÷èèüïçÃÂÃÂïüÃÂ
<em:id>yourextension@yoursite.com</em:id> <em:name>Your Extension's Name</em:name> <em:version>1.0</em:version>
çììäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂæÃÂÃÂÃ¥ÿÃÂçÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃ¥èÃÂÃÂçâüãÃÂÃÂÃÂ¥ÃÂè Firefox 1.5 äùÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂæÃÂìïüÃÂÃ¥ÿàéàÃÂäýÿçÃÂèÃ¥àèçÃÂÃÂÃÂ¥ÃÂïäøÃÂäûãèÃÂÃÂ(globally unique identifier)ïüÃÂÃÂ¥ÃÂó GUIDãÃÂÃÂÃÂ¥ÃÂÃÂçîá GUID éÃÂÃÂæÃÂïèâëæÃÂïæÃÂôçÃÂÃÂïüÃÂæÃÂðçÃÂÃÂæàüÃ¥üÃÂÃÂ¥ÃÂûæÃÂôÃ¥îùæÃÂÃÂäýÿçÃÂèãÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂàéÃÂÃÂèæÃÂäýÿçÃÂèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñïüÃÂïüàçìæèÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàäøÃÂäýàçÃÂÃÂçöòçëÃÂçÃÂÃÂæÃÂÃÂäøÃÂÃ¥ñäçöòÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂúéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂü tuttoolbar@borngeek.com ãÃÂÃÂ
æÃÂÃ¥èÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂçèñ(éÃÂÃÂæÃÂÃÂéáïçäúÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöçîáçÃÂÃÂÃÂ¥ÃÂáèãá)ãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçïÃÂäþÃÂèãáïüÃÂäýÿçÃÂè Toolbar Tutorial çÃÂúéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂçèñãÃÂÃÂçâúÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñäøÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëçÃÂÃÂæÃÂìç÷èèÃÂÃÂïüÃÂÃÂ¥ÃÂàçÃÂúçÃÂÃÂæÃÂìç÷èèÃÂÃÂæÃÂÃÂÃ¥îÃÂèÃÂêÃ¥÷ñÃ¥ðÃÂÃ¥ñìçÃÂÃÂæèÃÂçñäãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂç÷èèüïçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæèÃÂçñäÃ¥ðñÃÂ¥ÃÂèäøÃÂäøÃÂèáÃÂãÃÂÃÂæÃÂâçÃÂöéÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂèéæÃÂ¥ÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçììäøÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂèîÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüçÃÂú 1.0 ãÃÂÃÂèæÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃÂ¥ÃÂèçÃÂÃÂÃ¥ïæçÃÂÃÂæÃÂàæóÃÂèãáïüÃÂçÃÂöäýàçÃÂüèáèæÃÂðçÃÂÃÂæÃÂìçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂïüÃÂÃ¥ÿàéàÃÂæÃÂôæÃÂðéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüïüÃÂæÃÂÃÂèÿðèçãèÃÂïçèÃÂÃ¥üÃÂ(Scripter)ÃÂ¥ÃÂèèÃÂêÃÂ¥ÃÂÃÂæÃÂôæÃÂðéÃÂÃÂçèÃÂæÃÂÃÂäøÃÂæÃÂÃÂçÃÂüçÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂéçÃÂèäúÃÂæÃÂÃÂèÿðèêÃÂæóà(äûÃÂ¥ Perl Ã¥ïëæÃÂÃÂ)ãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçììäøÃÂçëàïüÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèèôäýàæÃÂÃÂÃ¥æÃÂäýÃÂäýÿçÃÂèãÃÂÃÂ
äøÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥áÃÂäùÃÂæÃÂïéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂîéÃÂÃÂèæÃÂçÃÂÃÂäøÃÂéÃÂèÃÂ¥ÃÂÃÂïüÃÂæÃÂÃ¥èÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂéÃÂèäûýïüÃÂ
<em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>1.5</em:minVersion> <em:maxVersion>1.5.0.*</em:maxVersion> </Description> </em:targetApplication>
éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥áÃÂæÃÂïçÃÂèäþÃÂæÃÂÃÂçäúÃÂ¥ÃÂ¥ÃÂäûöèæÃÂçÃÂèÃÂ¥ÃÂèÃÂ¥ÃÂêÃÂ¥ÃÂÃÂçèÃÂÃ¥üÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂéÃÂÃÂçÃÂü Firefox çÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂÃÂ¥ÃÂàæÃÂäïüÃÂ<em:id> éÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàæÃÂÃÂÃ¥îÃÂäúàFirefox çÃÂàGUID ãÃÂÃÂäýàäøÃÂæÃÂÃÂèéòæÃÂùèîÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüïüÃÂÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂèîÃÂäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂáæóÃÂèâëæÃÂãçâúÃÂ¥ÃÂðÃ¥îÃÂèãÃÂãÃÂÃÂ
ÃÂ¥ÃÂïäøÃÂÃ¥àéÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂèîÃÂÃÂ¥ÃÂÃÂçÃÂÃÂïüÃÂæÃÂïéÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂÃ¥àÃÂçôàïüÃÂ<em:minVersion> ãÃÂà<em:maxVersion> ãÃÂÃÂéÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂÃ¥àÃÂçôàæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂéÃÂ¥ÃÂÃÂçÃÂèÃÂ¥ÃÂè Firefox çÃÂÃÂÃÂ¥ÃÂêÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂì ( minVersion æÃÂïæÃÂÃÂäýÃÂæÃÂïæÃÂôçÃÂÃÂæÃÂìïüÃÂèÃÂàmaxVersion æÃÂïæÃÂÃÂéëÃÂæÃÂïæÃÂôçÃÂÃÂæÃÂì) ãÃÂàÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäýÿçÃÂè 1.5 (minVersion) èÃÂà1.5.0.* ïüÃÂmaxVersion)ãÃÂÃÂÃÂ¥ÃÂàçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂéçÃÂè Firefox 1.5 çÃÂÃÂéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂïüÃÂæÃÂÃÂäûÃ¥äøÃÂÃÂ¥ÃÂïäûÃ¥æÃÂàminVersion èèÃÂÃ¥îÃÂçÃÂÃÂæïà1.5 éÃÂÃÂÃ¥ðÃÂãÃÂÃÂ
æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂäýàæÃÂÃÂäýÿçÃÂèçÃÂÃÂçÃÂÃÂæÃÂìç÷èèÃÂÃÂÃ¥ÿàéàÃÂéÃÂõÃ¥îÃÂæèÃÂæúÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂãÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂãÃÂÃÂ1.5 Release Candidate 1ãÃÂÃÂæÃÂïäøÃÂèáÃÂçÃÂÃÂãÃÂÃÂçÃÂîÃÂ¥ÃÂàFirefox çÃÂÃÂçÃÂÃÂæÃÂìçõÃÂæçÃÂæÃÂïçÃÂøçÃÂöÃÂ¥ÃÂôèìùçÃÂÃÂïüÃÂÃÂ¥ÃÂè Mozilla Developer Center çÃÂÃÂæÃÂÃÂçëàToolkit Version Format æÃÂÃÂèéóçôðçÃÂÃÂæÃÂÃÂèÿðãÃÂÃÂæÃÂÃÂÃ¥ûúèÃÂðäýàèîÃÂéÃÂÃÂçïÃÂæÃÂÃÂçëàïüÃÂäûÃ¥äúÃÂèçãæÃÂÃÂæèãçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂïèâëÃ¥àÃÂèèñçÃÂÃÂãÃÂÃÂ
ÃÂ¥ÃÂèÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂîçÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂæÃÂïçÃÂèäþÃÂæÃÂÃÂèÿðÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂèóÃÂæÃÂÃÂÃ¥îÃÂçþéïüÃÂæÃÂÃÂçèñäøÃÂçùüèóÃÂæÃÂÃÂ(meta-data)ïüÃÂ
<!-- Optional Items --> <em:creator>Your Name</em:creator> <em:description>A description of the extension</em:description> <em:homepageURL>http://www.yoursite.com/</em:homepageURL>
Ã¥ðñÃ¥æÃÂèèûéÃÂÃÂäøÃÂæèãïüÃÂéÃÂÃÂäúÃÂÃ¥àÃÂçôàæÃÂïéÃÂÃÂÃ¥ÿàèæÃÂçÃÂÃÂãÃÂÃÂ<em:creator> Ã¥àÃÂèèñÃÂ¥ÃÂ¥ÃÂäûöäýÃÂèÃÂàæÃÂÃÂæÃÂÃÂèÃÂêÃ¥÷ñçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂæèãÃÂ¥ÃÂÃ¥äúúÃ¥ðñçÃÂÃ¥éÃÂÃÂæÃÂïèêðèãýäýÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂäøÃÂäøÃÂÃÂ¥ÃÂÃÂïüÃÂ<em:description> Ã¥àÃÂèèñæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂäøÃÂäúÃÂèêêæÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂèêêæÃÂÃÂæÃÂÃÂéáïçäúÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöçîáçÃÂÃÂÃÂ¥ÃÂáäøÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñÃ¥úÃÂäøÃÂãÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂ<em:homepageURL> Ã¥àÃÂèèñæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃ¥äúúÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèÃÂ¥ÃÂêèãáæÃÂþÃÂ¥ÃÂðæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂ
æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂéÃÂÃÂäúÃÂäøÃÂæÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂèóÃÂæÃÂÃÂÃ¥îÃÂçþéïüÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäùÃÂæÃÂÃÂèèñÃ¥äÃÂÃ¥àöäûÃÂÃÂ¥ÃÂïéÃÂøçÃÂèçÃÂÃÂéààçÃÂîãÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöçîáçÃÂÃÂÃÂ¥ÃÂáäøÃÂäýÿçÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂèÃÂêÃ¥÷ñçÃÂÃÂÃÂ¥ÃÂÃÂçäú(icon)ãÃÂàÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàÃ¥àÃÂèèñæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂèÃÂêèèÃÂéÃÂøéààçÃÂÃÂäýÃÂçýîæÃÂÃÂæÃÂïãÃÂÃÂéÃÂÃÂæÃÂüãÃÂÃÂçÃÂÃÂÃ¥ðÃÂèéñèæÃÂçêÃÂãÃÂÃÂÃ¥àèéÃÂèÃÂ¥ÃÂïçÃÂèçÃÂÃÂÃ¥àÃÂçôà(äùÃÂÃÂ¥ÃÂëÃÂ¥ÃÂÃÂÃ¥ñìæÃÂç properties )ïüÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂÃÂÃÂ¥ÃÂèMozilla Developer Center äøÃÂçÃÂÃÂæÃÂÃÂçëàInstaller Manifests ãÃÂÃÂæÃÂÃÂÃ¥þÃÂäøÃÂéûÃÂèæÃÂæóèæÃÂÃÂçÃÂÃÂïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃ¥àÃÂçôàæÃÂïäøÃÂéÃÂÃÂèæÃÂæÃÂÃÂçàçéàÃÂÃ¥úÃÂçÃÂÃÂãÃÂÃÂäùÃÂÃ¥ðñæÃÂïèêêïüÃÂäýàÃÂ¥ÃÂïäûÃ¥åðÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂèæêÃÂæáÃÂäøÃÂäûûäýÃÂÃÂ¥ÃÂðæÃÂùïüÃÂÃÂ¥ÃÂàÃÂ¥ÃÂàèæÃÂæóèæÃÂÃÂçÃÂÃÂæÃÂïïüÃÂÃ¥ðÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂæÃÂþçýîÃÂ¥ÃÂè <Description> èÃÂà</Description> äùÃÂéÃÂÃÂãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂèçãäúÃÂÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂîïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìÃ¥ðÃÂèâëäýÿçÃÂèÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥çÃÂôæÃÂÃ¥åðÃÂäøÃÂéÃÂâçÃÂÃÂéÃÂèäûýïüÃÂèäÃÂèãýÃÂ¥ÃÂè install.rdf äøÃÂãÃÂÃÂ
<?xml version="1.0"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <!-- Required Items --> <em:id>tuttoolbar@borngeek.com</em:id> <em:name>Tutorial Toolbar</em:name> <em:version>1.0</em:version> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>1.5</em:minVersion> <em:maxVersion>1.5.0.*</em:maxVersion> </Description> </em:targetApplication> <!-- Optional Items --> <em:creator>Jonah Bishop</em:creator> <em:description>An example toolbar extension.</em:description> <em:homepageURL>http://www.borngeek.com/firefox/</em:homepageURL> </Description> </RDF>
Chrome æøàÃÂ¥ÃÂî (Chrome Manifest)
Chrome æøàÃÂ¥ÃÂîæÃÂï Firefox 1.5 æÃÂÃÂéÃÂÃÂÃ¥çÃÂæÃÂÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂèóÃÂæÃÂÃÂèâëèèÃÂÃ¥îÃÂÃÂ¥ÃÂèÃ¥àéÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂùïüÃÂÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂî(installer manifest)ãÃÂÃÂÃÂ¥ÃÂàcontents.rdf ãÃÂÃÂèÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂæÃÂðçÃÂÃÂæàüÃ¥üÃÂéáïÃ¥þÃÂæÃÂôçðáÃÂ¥ÃÂîãÃÂÃÂÃÂ¥ÃÂÃÂæìáÃÂ¥ÃÂèæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂÃ¥ûúçëÃÂÃÂ¥ÃÂæÃ¥äÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂæáàchrome.manifest ãÃÂÃÂäøÃÂéÃÂâæÃÂïæêÃÂæáÃÂçõÃÂæçÃÂçÃÂÃÂèõ÷äþÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome.manifest +- chrome/ +- content/
Chrome æøàÃÂ¥ÃÂîæÃÂïçÃÂèäþÃÂÃÂ¥ÃÂÃÂèèô Firefox ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂäþÃÂçÃÂÃÂÃ¥ðÃÂèãÃÂ(package)èÃÂÃÂèæÃÂèüÃÂ(overlay)ãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂÃ¥ûúçëÃÂäùÃÂÃÂ¥ÃÂÃÂïüÃÂÃ¥àÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂ
content myextension chrome/content/ overlay chrome://browser/content/browser.xul chrome://myextension/content/overlay.xul locale myextension en-US chrome/locale/en-US/ skin myextension classic/1.0 chrome/skin/
èÃÂÃÂæÃÂéÃ¥àÃÂäýÿçÃÂèçÃÂàcontents.rdf (éÃÂÃÂÃ¥øøèöàéÃÂÃÂ20èáÃÂ) æïÃÂèüÃÂïüÃÂçÃÂþÃÂ¥ÃÂèçÃÂÃÂæÃÂùÃ¥üÃÂèîÃÂÃ¥þÃÂéÃÂÃÂÃ¥øøçðáÃÂ¥ÃÂîïüÃÂçììäøÃÂèáÃÂäýÿçÃÂèäýàæÃÂÃÂÃ¥îÃÂçÃÂÃÂÃ¥ðÃÂèãÃÂÃÂ¥ÃÂÃÂçèñäþÃÂçÃÂûéÃÂÃÂïüÃÂäøææÃÂÃÂæÃÂÃÂæÃÂþçýîÃÂ¥ÃÂè content çÃÂîéÃÂÃÂãÃÂÃÂéÃÂÃÂÃ¥ðÃÂÃ¥àÃÂèèñ chrome èóÃÂæúÃÂèÃÂÃÂÃÂ¥ÃÂÃÂ¥ÃÂ¥ÃÂÃÂäøò(Uniform Resource IdentifierïüÃÂçðáçèñ URI) ïüÃÂÃ¥æàchrome://myextension/content/ïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥ñäçôÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂéçÃÂöçÃÂÃÂÃÂ¥ÃÂðæÃÂùãÃÂÃÂæóèæÃÂÃÂïüÃÂÃ¥ðÃÂèãÃÂÃÂ¥ÃÂÃÂçèñÃÂ¥ÃÂêèÃÂýäûÃ¥åðÃÂÃ¥ïëèáèçäúïüÃÂÃ¥àöäûÃÂæ÷÷ÃÂ¥ÃÂÃÂÃ¥äçÃ¥ðÃÂÃ¥ïëïüÃÂæÃÂÃÂæÃÂïÃ¥àèéÃÂèÃ¥äçÃ¥ïëçÃÂÃÂÃÂ¥ÃÂÃÂçèñéÃÂýæÃÂïäøÃÂÃ¥àÃÂèèñçÃÂÃÂãÃÂÃÂ
æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂcontent çÃÂîéÃÂÃÂçÃÂÃÂäýÃÂçýîæÃÂïçÃÂøÃ¥ðÃÂæÃÂüÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæàùçÃÂîéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè tuttoolbar çÃÂöäýÃÂÃ¥ðÃÂèãÃÂÃÂ¥ÃÂÃÂçèñãÃÂÃÂ
çììäúÃÂèáÃÂçÃÂûéÃÂàchrome://browser/content/browser.xul çÃÂÃÂèæÃÂèüÃÂ(overlay)ïüÃÂéÃÂÃÂÃ¥àÃÂèèñäýàæÃÂðÃ¥âÃÂæÃÂÃÂäÿîæÃÂù Firefox äøûèæÃÂçêÃÂçÃÂÃÂäýÿçÃÂèèÃÂàäûÃÂéÃÂâ(user interface)ãÃÂÃÂ
ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂïüÃÂchrome://myextension/content/overlay.xul æÃÂÃÂÃ¥îÃÂäúÃÂèæÃÂèüÃÂ(overlay)çÃÂÃÂXUL æêÃÂæáÃÂãÃÂÃÂ
æÃÂÃÂÃÂ¥ÃÂÃ¥èéñèêêïüÃÂäýÃÂæÃÂüÃÂ¥ÃÂ¥ÃÂäûöäøàcontent çÃÂîéÃÂÃÂçÃÂàoverlay.xul æêÃÂæáÃÂïüÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèæÃÂæÃÂðÃ¥âÃÂçÃÂÃÂäýÿçÃÂèèÃÂàäûÃÂéÃÂâ(Ã¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂ)ãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂèäûýïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂäýÿçÃÂèçÃÂÃÂÃÂ¥ÃÂüçÃÂú chrome://tuttoolbar/content/tuttoolbar.xul ãÃÂàäøÃÂäøÃÂèáÃÂèêêæÃÂÃÂÃÂ¥ÃÂðÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥æÃÂäýÃÂÃ¥ûúçëÃÂ(how a locale can be created)ãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂèèÃÂèèÃÂÃÂ¥ÃÂðÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂ(éÃÂÃÂçÃÂöéÃÂÃÂçèÃÂÃ¥þÃÂçðáÃÂ¥ÃÂî)ïüÃÂéÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂèæÃÂêäþÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂèëÃÂãÃÂÃÂ
æÃÂÃÂÃ¥þÃÂäøÃÂèáÃÂèèÃÂÃ¥îÃÂäúÃÂéÃÂâæÃÂÿ(skin)ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥÷çäþÃÂçþÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂÃ¥àÃÂçÃÂÃ¥éÃÂÃÂÃ¥îÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂèçììäúÃÂçëàÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂèèÃÂèëÃÂéÃÂÃÂéûÃÂãÃÂàäøÃÂÃÂ¥ÃÂÃÂéÃÂýÃ¥þÃÂçðáÃÂ¥ÃÂîïüÃÂäøÃÂæÃÂïÃÂ¥ÃÂÃÂïüÃÂäøÃÂéÃÂâæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂäýÿçÃÂèçÃÂàchrome æøàÃÂ¥ÃÂîïüÃÂéÃÂÃÂÃÂ¥ÃÂêæÃÂïÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂäùÃÂÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂàÃ¥àÃ¥éÃÂâæÃÂÿçÃÂÃÂèóÃÂèèÃÂãÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂæìáïüÃÂÃ¥ðÃÂäøÃÂéÃÂâçÃÂÃÂçèÃÂÃ¥üÃÂçâüèäÃÂèãýÃÂ¥ÃÂðæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàchrome.manifest ãÃÂÃÂ
content tuttoolbar chrome/content/ overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul
çÃÂþÃÂ¥ÃÂèæÃÂöæçÃÂÃ¥÷òçöÃÂÃÂ¥ÃÂïäûÃ¥äúÃÂïüÃÂæÃÂÃ¥èÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂäúÃÂæÃÂÃÂèöãçÃÂÃÂäúÃÂÃÂ¥ÃÂçïüÃÂ
çììäøÃÂçëàïüÃÂÃ¥ûúæçÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂà(Structuring the Toolbar)
Firefox ÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂäýÿçÃÂèèÃÂàäûÃÂéÃÂâéÃÂèäûýæÃÂïäýÿçÃÂè XUL æÃÂÃÂèáà(éÃÂóïüÃÂzool)ïüÃÂéÃÂÃÂæÃÂïäøÃÂçèîçÃÂèäþÃÂèèÃÂèèÃÂäýÿçÃÂèèÃÂàäûÃÂéÃÂâçÃÂÃÂæèÃÂçäúèêÃÂèèÃÂãÃÂÃÂXUL ÃÂ¥ÃÂïäûÃ¥æÃÂóæÃÂÃÂæÃÂïäøÃÂçèî XML çÃÂÃÂèêÿÃÂ¥ÃÂóæÃÂÃÂ(æÃÂÃÂæÃÂèæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂÃÂèÃÂýçÃÂÃÂ)ïüàÃ¥îÃÂäøÃÂéÃÂÃÂæÃÂïäýÿçÃÂèéàÃÂèèÃÂÃ¥àÃÂçôàçÃÂàXML (äùÃÂÃÂ¥ÃÂëÃÂ¥ÃÂàwidgets)ãÃÂÃÂäýÿçÃÂè XUL çÃÂÃÂÃ¥åýèÃÂÃÂïüÃÂæÃÂïÃÂ¥ÃÂàçÃÂúÃ¥îÃÂäýÿçÃÂèäúÃÂÃÂ¥ÃÂÃÂæàÃÂèæÃÂèüÃÂ(dynamic overlays)çÃÂÃÂæÃÂÃÂèáÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂèæÃÂèüÃÂæÃÂÃÂèáÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂéÃÂÃÂçÃÂüèÃÂàäøÃÂéÃÂÃÂèæÃÂæÃÂùèîÃÂÃÂ¥ÃÂÃÂæÃÂìäûÃÂéÃÂâçÃÂÃÂçèÃÂÃ¥üÃÂçâüçÃÂÃÂæÃÂàæóÃÂäøÃÂïüÃÂÃÂ¥ÃÂûäÿîæÃÂùèæÃÂçêÃÂçÃÂÃÂäýÿçÃÂèèÃÂàäûÃÂéÃÂâãÃÂÃÂÃÂ¥ÃÂèäøÃÂéÃÂÃÂæÃÂôÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥çÃÂçèÃÂÃ¥üÃÂçâüçÃÂÃÂæÃÂàæóÃÂäøÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæóèæÃÂüèèÃÂèèÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂèÃÂÃÂäøÃÂçÃÂèæÃÂÃÂÃ¥ÿÃÂéÃÂÃÂèæÃÂéÃÂÃÂèäÃÂéÃÂÃÂçÃÂüçÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçëàçïÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂäþÃÂçÃÂÃÂçÃÂÃÂèèÃÂèèÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂàXUL Ã¥ÿàèæÃÂæèÃÂçäúãÃÂÃÂèèÃÂäýÃÂïüÃÂXUL ÃÂ¥ÃÂàÃÂ¥ÃÂàæÃÂïçÃÂèäþÃÂÃ¥ûúæçÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂèÃÂÃÂÃ¥÷òãÃÂÃÂçÃÂúäúÃÂèîÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂäýÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂäýÿçÃÂè JavaScript ïüÃÂéÃÂÃÂéÃÂèäûýÃ¥ðÃÂÃÂ¥ÃÂèçììÃ¥àÃÂçëàæÃÂÃÂÃÂ¥ÃÂðãÃÂÃÂ
ÃÂ¥ÃÂè content çÃÂîéÃÂÃÂèãáïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂçÃÂú tuttoolbar.xul çÃÂÃÂæêÃÂæáÃÂãÃÂÃÂÃÂ¥ÃÂèäýàÃ¥ûúçëÃÂÃ¥åýäùÃÂÃ¥þÃÂïüÃÂçÃÂîéÃÂÃÂçÃÂÃÂçõÃÂæçÃÂæÃÂÃÂæÃÂïéÃÂÃÂæèãïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome.manifest +- chrome/ +- content/ +- tuttoolbar.xul
çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂÃ¥ûúçëÃÂÃ¥åýéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂèáÃÂÃÂ¥ÃÂðéÃÂÃÂÃ¥çÃÂèèÃÂèëÃÂÃ¥àçÃ¥îùãÃÂÃÂéÃÂèèÃÂÃÂéÃÂòèáÃÂçÃÂÃÂèàóæÃÂÃ¥ïüÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂæêÃÂæáÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂÃ¥àçÃ¥îùïüÃÂäøÃÂæÃÂÃ¥äøÃÂæÃÂÃÂ¥ÃÂ¥ÃÂðäûÃÂçôùãÃÂÃÂéÃÂÃÂæÃÂÃÂèîÃÂéÃÂÃÂçèÃÂçÃÂÃÂèõ÷äþÃÂæÃÂôçðáÃÂ¥ÃÂîïüÃÂÃÂ¥ÃÂèéÃÂÃÂçëàçïÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂæÃÂÃÂçÃÂøçÃÂöÃÂ¥ÃÂÃ¥åàèãÃÂÃÂ
ÃÂ¥ÃÂàçÃÂú XUL ÃÂ¥ÃÂêæÃÂïäøÃÂçèî XML çÃÂÃÂèêÿÃÂ¥ÃÂóæÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥çììäøÃÂèáÃÂÃ¥ÿàéàÃÂæÃÂïäýÿçÃÂè XML çÃÂÃÂÃ¥îãÃÂ¥ÃÂÃÂïüÃÂ
<?xml version="1.0"?>
çÃÂþÃÂ¥ÃÂèïüÃÂÃ¥îãÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂïäøÃÂÃÂ¥ÃÂàXML çÃÂÃÂæêÃÂæáÃÂäùÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂèÃÂÃÂçÃÂñ overlay Ã¥àÃÂçôàèèÃÂèèÃÂèæÃÂèüÃÂäúÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàÃ¥ðÃÂæÃÂÃÂæÃÂïéÃÂÃÂæÃÂôäûýæÃÂÃÂäûöçÃÂÃÂæàùÃ¥àÃÂçôàãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃ¥èéñèêêïüÃÂæÃÂÃÂæÃÂÃÂÃ¥àöäûÃÂçÃÂÃÂÃ¥àÃÂçôàÃ¥ÿàéàÃÂÃÂ¥ÃÂè <overlay> èÃÂà</overlay> äùÃÂéÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂï overlay çÃÂÃÂèõ÷äþÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüÃÂ
<overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> </overlay>
éÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàæÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçïüÃÂid èÃÂàxmlns ãÃÂÃÂéÃÂÃÂè÷àHTML éáÃÂäüüïüÃÂid çÃÂÃÂÃÂ¥ÃÂüÃ¥ÿàéàÃÂæÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂãÃÂÃÂæÃÂôéÃÂÃÂèæÃÂçÃÂÃÂæÃÂïïüÃÂéÃÂÃÂäùÃÂÃ¥ÿàéàÃÂæÃÂïæÃÂôÃÂ¥ÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂèÃÂ¥ÃÂïäøÃÂçÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂéÃÂÃÂèãáæÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàçâúÃ¥îÃÂæÃÂÃÂäýÿçÃÂèçÃÂàID æÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂæÃÂùæóÃÂãÃÂÃÂäþÃÂÃ¥æÃÂïüÃÂäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥æóèæÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂäýÿçÃÂèäúàTutTB éÃÂÃÂéàÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçÃÂüäþÃÂÃ¥îÃÂçþé id Ã¥ñìæÃÂççÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂäýÿçÃÂèçìæÃÂ¥ÃÂÃÂäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñéÃÂÃÂéàÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçÃÂüïüÃÂéÃÂÃÂæÃÂÃÂäýÿ ID æÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂÃÂ¥ÃÂïèÃÂýæÃÂçæÃÂÃÂéëÃÂãÃÂÃÂäøæäøÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃ¥ïæéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂüæÃÂïäøÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂàÃÂ¥ÃÂë overlay çÃÂÃÂÃÂ¥ÃÂÃÂçÃÂüïüÃÂæÃÂÃÂéÃÂÃÂéúüÃÂ¥ÃÂÃÂæÃÂïæÃÂùäþÿæÃÂÃÂèÿýèùäæÃÂÃÂäýÿçÃÂèçÃÂÃÂÃÂ¥ÃÂÃÂçèñæÃÂïÃÂ¥ÃÂÃÂäûÃÂéúüçÃÂèçÃÂÃÂãÃÂÃÂ
çììäúÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçïüÃÂxmlnsïüÃÂçÃÂèäþÃÂæÃÂÃÂÃ¥îÃÂäýÿçÃÂèæÃÂüèæÃÂèüÃÂçÃÂÃÂÃÂ¥ÃÂýÃÂ¥ÃÂÃÂçéúéÃÂÃÂãÃÂÃÂæÃÂâçÃÂöéÃÂÃÂæÃÂï XUL æÃÂÃÂäûöïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃ¥îÃÂçþé XUL çÃÂÃÂÃÂ¥ÃÂýÃÂ¥ÃÂÃÂçéúéÃÂÃÂïüÃÂéÃÂÃÂæÃÂïäýàæÃÂÃÂäøÃÂçÃÂôçÃÂèÃÂ¥ÃÂðçÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂ
Ã¥÷Ã¥åà÷çîñèÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂà(The Toolbox and Toolbar)
æÃÂÃÂæÃÂÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂèéòèâëéÃÂÃÂäøÃÂÃÂ¥ÃÂèÃ¥÷Ã¥åà÷çîñäøÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè toolbox Ã¥àÃÂçôàäþÃÂæÃÂÃÂÃ¥îÃÂäøÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷çîñ(èèÃÂäýÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàÃ¥ÿàéàÃÂèâëæÃÂþçýîÃÂ¥ÃÂè overlay äùÃÂéÃÂÃÂãÃÂÃÂ)ïüÃÂ
<toolbox id="navigator-toolbox"> </toolbox>
æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂéÃÂÃÂÃÂ¥ÃÂàid Ã¥ñìæÃÂçæÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂüïüÃÂnavigator-toolbox ãÃÂàéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂüèáèçäúçÃÂú Firefox èæÃÂçêÃÂäøÃÂäøûèæÃÂçÃÂÃÂÃ¥÷Ã¥åà÷çîñÃ¥àÃÂçôàïüÃÂè÷ÃÂçÃÂÃÂèæýÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîÃÂ¥ÃÂÃÂãÃÂÃÂçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂæÃÂïÃ¥àöäûÃÂéáÃÂäüüçÃÂÃÂæÃÂçÃÂ¥ÃÂöéÃÂøéààäøÃÂæèããÃÂÃÂèÃÂÃÂçÃÂñæÃÂÃÂÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃÂ¥ÃÂÃ¥çÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥çâúÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂèÃÂÃÂÃ¥àöäûÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂéÃÂàæÃÂÃÂÃÂ¥ÃÂèäøÃÂèõ÷ãÃÂÃÂæÃÂÃÂÃ¥ûúèÃÂðäýàçøýæÃÂïèîÃÂäýàçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃ¥îÃÂçÃÂÃÂÃ¥÷Ã¥åà÷çîñäøÃÂïüÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂêèîÃÂäýàæÃÂÃÂçÃÂÃÂèõ÷äþÃÂäøÃÂèÃÂôçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂïüÃÂäùÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàÃÂ¥ÃÂè ãÃÂÃÂæêâèæÃÂ>Ã¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂàäøÃÂïüÃÂÃ¥ÿëéÃÂÃÂÃÂ¥ÃÂðÃ¥ðÃÂäýàçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂéÃÂñèÃÂÃÂæÃÂÃÂæÃÂïéáïçäúãÃÂÃÂ
èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæóèæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂÃÂÃÂ¥ÃÂð toolbar Ã¥àÃÂçôàïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàæÃÂþÃÂ¥ÃÂè toolbox äùÃÂäøÃÂãÃÂÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂ
<toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> </toolbar>
èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàçÃÂÃÂÃ¥ñìæÃÂçïüÃÂ
- toolbarname - éÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂçèñ(éÃÂÃÂæÃÂÃÂæÃÂïäýàÃÂ¥ÃÂèãÃÂÃÂæêâèæÃÂ>Ã¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂ)ãÃÂÃÂ
- accesskey - çõæéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂæïÃÂïüÃÂçÃÂèäþÃÂçÃÂöäýÃÂÃ¥ÿëéÃÂÃÂéÃÂõäýÿçÃÂèãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂèÃ¥äçÃ¥ïëçÃÂàT ãÃÂÃÂéÃÂÃÂçÃÂöéÃÂÃÂæÃÂïéÃÂÃÂÃ¥ÿàèæÃÂçÃÂÃÂÃ¥ñìæÃÂçïüÃÂéÃÂÃÂæÃÂïÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàäýÿçÃÂèÃ¥îÃÂïüÃÂéÃÂÃÂèÃÂýèîÃÂäýÿçÃÂèèÃÂàÃÂ¥ÃÂêèæÃÂçÃÂèÃ¥ÿëéÃÂÃÂéÃÂõÃ¥ðñèÃÂýéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂÃÂäýàçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂÃÂ
- class - çÃÂúÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂçÃÂùÃ¥îÃÂçÃÂÃÂæèãÃ¥üÃÂéáÃÂÃÂ¥ÃÂÃ¥ãÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂü chromeclass-toolbar æÃÂïçÃÂèäþÃÂèæÃÂçïÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂéáïçäúæèáÃ¥üÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃ¥ïüÃÂÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðïüÃÂéÃÂÃÂæÃÂïÃ¥ûúèÃÂðäýÿçÃÂèçÃÂÃÂéÃÂÃÂÃ¥ÿàèæÃÂÃ¥ñìæÃÂçãÃÂÃÂ
- context - æÃÂÃÂÃ¥îÃÂçÃÂöÃÂ¥ÃÂèÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂóéÃÂõæÃÂÃÂïüÃÂæÃÂÃÂéáïçäúçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂî(context menu)ãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥æÃÂÃÂäþÃÂäýàçÃÂÃÂéÃÂøÃÂ¥ÃÂî ID ÃÂ¥ÃÂüïüÃÂæÃÂÃÂæÃÂïäýÿçÃÂè toolbar-context-menu äþÃÂÃ¥ðÃÂéÃÂøÃÂ¥ÃÂîæÃÂþçýîÃÂ¥ÃÂèãÃÂÃÂæêâèæà> Ã¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂÃÂãÃÂÃÂ
- hidden - æÃÂÃÂÃ¥îÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂïÃÂ¥ÃÂæéÃÂñèÃÂÃÂãÃÂÃÂéàÃÂèèÃÂçÃÂÃÂæÃÂàæóÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂèîÃÂäýÿçÃÂèèÃÂàçÃÂÃÂèæÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥èèÃÂÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüçÃÂú false (çÃÂøÃÂ¥ÃÂÃÂçÃÂú ture )ãÃÂÃÂ
- persist - This attribute is a space separated list of attributes that should persist across browser sessions. ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂäýÿçÃÂè hidden ïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂèèô Firefox ÃÂ¥ÃÂè sessions èèÃÂäýÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂñèÃÂÃÂçÃÂÃÂæàÃÂãÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃ¥æÃÂæÃÂÃÂäýàçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæòÃÂæÃÂÃÂäýÿçÃÂè id Ã¥ñìæÃÂçïüÃÂÃÂ¥ÃÂàpersist Ã¥ñìæÃÂçäøÃÂæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂèïüÃÂæÃÂÃÂäûÃ¥èæÃÂçâúÃ¥îÃÂäýàæÃÂÃÂçÃÂúäýàçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îàid Ã¥àÃÂçôàãÃÂÃÂ
äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet toolbar element's attributes çÃÂÃÂÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃ¥ûúçëÃÂÃ¥åýçÃÂÃÂèæÃÂèüÃÂæêÃÂæáÃÂ[View XUL Overlay Revision 1]ïüÃÂ
<?xml version="1.0"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <toolbox id="navigator-toolbox"> <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> </toolbar> </toolbox> </overlay>
Ã¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Toolbar Buttons)
ÃÂ¥ÃÂè Firefox äøÃÂïüÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂÃÂäøÃÂçèîïüÃÂäøÃÂèÃÂìãÃÂÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂéÃÂÃÂäúÃÂéÃÂýæÃÂïçÃÂè toolbarbutton äþÃÂÃ¥ûúçëÃÂçÃÂÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃ¥çÃÂÃÂçÃÂÃÂãÃÂÃÂèèÃÂäýÃÂïüÃÂéÃÂÃÂäúÃÂÃ¥àÃÂçôàÃ¥ÿàéàÃÂæÃÂþÃÂ¥ÃÂè toolbar Ã¥àÃÂçôàäùÃÂäøÃÂãÃÂÃÂ
äøÃÂèÃÂìæÃÂÃÂéÃÂà(Normal Buttons)
éÃÂÃÂæÃÂïçÃÂèäþÃÂÃ¥ûúçëÃÂäøÃÂèÃÂìçÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂ
<toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" label="Web Search" oncommand="TutTB_Search(event, 'web')" />
Ã¥îÃÂæÃÂÃÂäùÃÂÃ¥þÃÂïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàçÃÂÃÂÃ¥ñìæÃÂçïüÃÂ
- tooltiptext - çÃÂöæûÃÂéüàççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂéÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþçÃÂÃÂèêêæÃÂÃÂãÃÂÃÂ
- label - Ã¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂéáïçäúçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂ
- oncommand - çÃÂö oncommand äúÃÂäûöèçøçÃÂüæÃÂÃÂ(æÃÂÃÂäøÃÂæÃÂÃÂéÃÂÃÂ)ïüÃÂäýàæÃÂÃÂæÃÂÃÂÃ¥îÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂäýÿçÃÂè TutTB_Search()ÃÂ¥ÃÂýÃ¥üÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂèçììÃ¥àÃÂçëàèéóçôðèêêæÃÂÃÂãÃÂÃÂ
äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet toolbarbutton element's attributes æÃÂþÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂÃÂ
éÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂà(Menu Buttons)
çÃÂöéûÃÂæÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîãÃÂàÃÂ¥ÃÂÃÂçîáéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂæèÃÂèèÃÂéáÃÂäüüäøÃÂèÃÂìæÃÂÃÂéÃÂÃÂæèÃÂèèÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂïÃ¥ÿàéàÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ menupopup Ã¥àÃÂçôàïüÃÂèîÃÂéÃÂøÃÂ¥ÃÂîäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂóèæÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂÃÂ¥ÃÂúçÃÂþãÃÂÃÂçÃÂúäúÃÂçðáæýÃÂéûÃÂïüÃÂäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂÃÂ¥ÃÂêÃÂ¥ÃÂàÃÂ¥ÃÂëÃ¥àéÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîãÃÂÃÂ
<toolbarbutton id="TutTB-MainMenu" type="menu" tooltiptext="Tutorial Toolbar Main Menu"> <menupopup> <menuitem label="Google Home Page" accesskey="G" tooltiptext="Navigate to Google" oncommand="TutTB_LoadURL('http://www.google.com/')" /> <menuseparator /> <menuitem label="Born Geek Website" accesskey="B" tooltiptext="Navigate to Born Geek" oncommand="TutTB_LoadURL('http://www.borngeek.com/')" /> </menupopup> </toolbarbutton>
toolbarbutton æÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂèæÃÂæóèæÃÂÃÂçÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂãÃÂÃÂçììäøÃÂïüÃÂtype Ã¥ñìæÃÂçæÃÂÃÂÃ¥îÃÂäúàmenu çÃÂÃÂÃÂ¥ÃÂüïüÃÂèêêæÃÂÃÂäúÃÂéÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂïüÃÂèÃÂÃÂäøÃÂæÃÂïäøÃÂèÃÂìæÃÂÃÂéÃÂÃÂãÃÂÃÂçììäúÃÂïüÃÂäýàæÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂèãáéÃÂâæòÃÂæÃÂàoncommand Ã¥ñìæÃÂçãÃÂÃÂÃÂ¥ÃÂàçÃÂúéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂïäøÃÂçÃÂîçÃÂÃÂæÃÂïçÃÂúäúÃÂéáïçäúè÷óÃÂ¥ÃÂúÃ¥üÃÂéÃÂøÃÂ¥ÃÂîïüÃÂäøæäøÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂ÷èáÃÂäûûäýÃÂçèÃÂÃ¥üÃÂçâüïüÃÂèÃÂÃÂéáïçäúéÃÂøÃÂ¥ÃÂîçÃÂÃÂÃÂ¥ÃÂÃÂäýÃÂæÃÂÃÂçÃÂñ Firefox èÃÂêÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂãÃÂÃÂ
äùÃÂèëÃÂæóèæÃÂÃÂÃÂ¥ÃÂð menupopup ïüÃÂmenuitem ïüÃÂmenuseparator éÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàãÃÂÃÂmenupopup æÃÂÃÂæÃÂÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîçÃÂÃÂÃ¥îùÃÂ¥ÃÂèïüÃÂçÃÂèäþÃÂÃ¥ûúçëÃÂèÃÂÃÂéáïçäúéÃÂøÃÂ¥ÃÂîãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂèãáïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàæòÃÂæÃÂÃÂÃ¥ñìæÃÂçãÃÂÃÂÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðïüÃÂmenuseparator äùÃÂÃ¥þÃÂçðáÃÂ¥ÃÂîïüÃÂÃÂ¥ÃÂèäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂþçýîæðôÃ¥ùóÃÂ¥ÃÂÃÂéÃÂÃÂç÷ÃÂïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂ
menuitem çèÃÂÃ¥þîæÃÂÃÂéûÃÂèäÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂçÃÂÃÂÃ¥ñìæÃÂçïüÃÂ
- label - æÃÂÃÂÃ¥îÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂ
- tooltiptext - éÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçÃ¥ðñÃÂ¥ÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂè toolbarbutton çÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂïüÃÂäýÃÂæÃÂïæÃÂÃÂäøÃÂéûÃÂèæÃÂèÃÂæÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂçÃÂñæÃÂü Firefox çÃÂàbug (bug #147670)ïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçæÃÂïÃ¥ÿàèæÃÂçÃÂÃÂãÃÂÃÂÃ¥æÃÂæÃÂÃÂäýàæñúÃ¥îÃÂÃ¥þàmenuitem äøÃÂÃÂ¥ÃÂêæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçïüÃÂçÃÂöäýÿçÃÂèèÃÂàÃ¥ðÃÂæûÃÂéüàççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðéÃÂøÃÂ¥ÃÂîéààçÃÂîæÃÂÃÂïüÃÂæÃÂÃÂçÃÂÃÂäøÃÂÃÂ¥ÃÂðæÃÂÃÂçäúèêêæÃÂÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂÃÂéáïçäúÃ¥÷Ã¥åà÷æÃÂÃÂçäúïüÃÂéÃÂÃÂçÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂäûääúúäøÃÂæûÿæÃÂÃÂçÃÂÃÂãÃÂÃÂçÃÂùèÃÂòãÃÂÃÂïüÃÂ
äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet menuitem element's attributes æÃÂþÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂÃÂ
æÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂî (Button-Menu Buttons)
çììäøÃÂäùÃÂæÃÂïæÃÂÃÂÃ¥þÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂïäøÃÂçèîäùÃÂäøÃÂæÃÂÃÂèäÃÂéÃÂÃÂçÃÂÃÂãÃÂÃÂÃ¥ïæéÃÂÃÂäøÃÂïüÃÂçõÃÂÃÂ¥ÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂÃ¥àéçèîæÃÂÃÂéÃÂÃÂïüÃÂæÃÂÃÂäþÃÂÃÂ¥ÃÂïéûÃÂæÃÂÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂ
ãÃÂÃÂäøÃÂäøÃÂéàÃÂãÃÂÃÂèÃÂÃÂãÃÂÃÂäøÃÂäøÃÂéàÃÂãÃÂÃÂçÃÂÃÂèæýéÃÂøÃÂ¥ÃÂîæÃÂïéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîçÃÂÃÂçïÃÂäþÃÂïüÃÂéÃÂÃÂæÃÂïéÃÂÃÂèæÃÂÃ¥ûúçëÃÂçÃÂÃÂæèÃÂèèÃÂïüÃÂ
<toolbarbutton id="TutTB-Combined-Button" label="Search" type="menu-button" tooltiptext="Combined Search" oncommand="TutTB_Search(event, 'web')"> <menupopup> <menuitem id="TutTB-Combined-Web" label="Web Search" class="menuitem-iconic" tooltiptext="Search the Web" oncommand="TutTB_Search(event, 'web'); event.preventBubble();" /> <menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" /> </menupopup> </toolbarbutton>
æÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂÃÂ¥ÃÂüÃ¥þÃÂæóèæÃÂÃÂçÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂè toolbarbutton çÃÂàtype Ã¥ñìæÃÂçæÃÂÃÂÃ¥îÃÂäúÃÂÃÂ¥ÃÂü menu-button ïüÃÂèÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂæÃ¥äÃÂäøÃÂèáÃÂçèÃÂÃ¥üÃÂçâü oncommand ïüÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂèçììÃ¥àÃÂçëàèçãéÃÂÃÂéÃÂÃÂéáÃÂÃ¥äÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüãÃÂÃÂæÃÂÃ¥èÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂéÃÂÃÂèãáæÃÂÃÂè÷ÃÂãÃÂÃÂäøÃÂèÃÂìæÃÂÃÂéÃÂÃÂãÃÂÃÂäøÃÂæèãçÃÂàtoolbarbutton æÃÂàoncommand Ã¥ñìæÃÂçïüÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂèãÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂãÃÂÃÂèãáçÃÂÃÂÃ¥÷âçÃÂÃÂÃ¥àÃÂçôàmenupopup èÃÂàmenuitem ãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂèëÃÂÃ¥îÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüçÃÂÃÂæèãÃÂ¥ÃÂÃÂ[View XUL Overlay Revision 2]ïüÃÂ
<?xml version="1.0"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <toolbox id="navigator-toolbox"> <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> <toolbarbutton id="TutTB-MainMenu" type="menu" tooltiptext="Tutorial Toolbar Main Menu"> <menupopup> <menuitem label="Google Home Page" accesskey="G" tooltiptext="Navigate to Google" oncommand="TutTB_LoadURL('http://www.google.com/')" /> <menuseparator /> <menuitem label="Born Geek Website" accesskey="B" tooltiptext="Navigate to Born Geek" oncommand="TutTB_LoadURL('http://www.borngeek.com/')" /> </menupopup> </toolbarbutton> <toolbarbutton id="TutTB-Combined-Button" label="Search" type="menu-button" tooltiptext="Combined Search" oncommand="TutTB_Search(event, 'web')"> <menupopup> <menuitem id="TutTB-Combined-Web" label="Web Search" class="menuitem-iconic" tooltiptext="Search the Web" oncommand="TutTB_Search(event, 'web'); event.preventBubble();" /> <menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" /> </menupopup> </toolbarbutton> <toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" label="Web Search" oncommand="TutTB_Search(event, 'web')" /> </toolbar> </toolbox> </overlay>
äøÃÂæÃÂÃÂÃ¥üÃÂç÷èèüïÃÂ¥ÃÂà(Drop-Down Edit Box)
äøÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂÃÂ¥ÃÂèÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃ¥çÃÂÃÂæÃÂïäøÃÂæÃÂÃÂÃ¥üÃÂç÷èèüïÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂïçÃÂè menulist äþÃÂÃ¥ûúçëÃÂçÃÂÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüïüÃÂ
<toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem>
æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂàmenulist æÃÂþÃÂ¥ÃÂè toolbaritem äùÃÂäøÃÂãÃÂÃÂäûûäýÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂè toolbar çÃÂÃÂéààçÃÂîéÃÂýäøÃÂæÃÂïÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂÃÂ¥ÃÂè toolbaritem èãáéàÃÂçÃÂÃÂæÃÂÃÂæÃÂïãÃÂÃÂäùÃÂèëÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂú toolbaritem æÃÂÃÂÃ¥îÃÂäúàid ïüÃÂäøÃÂèèÃÂÃ¥îÃÂäúÃÂÃ¥ïìÃ¥úæ(èÃÂÃÂçÃÂñÃÂ¥ÃÂéçÃÂèäúàpersist Ã¥ñìæÃÂç)ãÃÂÃÂ
menulist æÃÂÃÂæÃÂïçÃÂÃÂæÃÂãçÃÂèäþÃÂÃ¥ûúçëÃÂäøÃÂæÃÂÃÂÃ¥üÃÂç÷èèüïÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂæÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàÃÂ¥ÃÂúçÃÂþçÃÂÃÂæÃÂðÃ¥ñìæÃÂçïüÃÂ
- editable - çÃÂöèèÃÂÃ¥îÃÂçÃÂú true æÃÂÃÂïüÃÂäýÿçÃÂèèÃÂàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèç÷èèüïÃÂ¥ÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂ
- flex - äýÿéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂçôàæÃÂïÃÂ¥ÃÂïèîÃÂÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂæÃÂôæÃÂøÃÂ¥ÃÂüïüÃÂçÃÂøÃ¥ðÃÂæÃÂüÃ¥àöäûÃÂÃÂ¥ÃÂïèîÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃ¥àÃÂçôàïüÃÂæÃÂÃÂÃ¥îÃÂÃ¥àöÃ¥äçÃ¥ðÃÂãÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂü 2 äûãèáèèÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂü 1 çÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂÃ¥ïìïüÃÂ0 ÃÂ¥ÃÂÃÂæÃÂïäøÃÂèÃÂýèîÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂúÃ¥îÃÂÃ¥ïìÃ¥úæãÃÂÃÂ
- minwidth - æÃÂÃÂÃ¥ðÃÂÃ¥ïìÃ¥úæïüÃÂÃÂ¥ÃÂîäýÃÂçÃÂúÃÂ¥ÃÂÃÂçôàãÃÂÃÂ
- width - ÃÂ¥ÃÂÃÂÃ¥çÃÂÃ¥ïìÃ¥úæïüÃÂÃÂ¥ÃÂîäýÃÂçÃÂúÃÂ¥ÃÂÃÂçôàãÃÂÃÂ
- onkeypress - çÃÂöäýÿçÃÂèèÃÂàèüøÃ¥àÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüãÃÂÃÂ
äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet menulist element's attributes çÃÂÃÂÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂÃÂ
è÷ÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäùÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂãÃÂÃÂäøÃÂæèãïüÃÂÃÂ¥ÃÂè menulist èãáçÃÂàmenupopup ÃÂ¥ÃÂàÃÂ¥ÃÂëäúàmenuitem Ã¥àÃÂçôàãÃÂÃÂonpopupshowing éÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂäûöæÃÂÃÂÃÂ¥ÃÂèç÷èèüïÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîéáïçäúÃÂ¥ÃÂÃÂèçøçÃÂüïüÃÂÃ¥àöäøÃÂæÃÂÃÂÃ¥îÃÂäøÃÂÃÂ¥ÃÂÃÂèÃÂýÃÂ¥ÃÂÃÂæàÃÂÃ¥ïëÃ¥àÃ¥éÃÂøÃÂ¥ÃÂîéààçÃÂîçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçèÃÂÃ¥þÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäýàäùÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂàÃ¥àÃ¥éÃÂÃÂæàÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîïüÃÂéÃÂÃÂçèÃÂè÷ÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂãÃÂÃÂæÃÂïäøÃÂæèãçÃÂÃÂãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥÷òçöÃÂèîÃÂÃ¥þÃÂæÃÂôÃ¥à÷éëÃÂäøÃÂéûÃÂäúÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâü[View XUL Overlay Revision 3]ïüÃÂ
<?xml version="1.0"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <toolbox id="navigator-toolbox"> <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> <toolbarbutton id="TutTB-MainMenu" type="menu" tooltiptext="Tutorial Toolbar Main Menu"> <menupopup> <menuitem label="Google Home Page" accesskey="G" tooltiptext="Navigate to Google" oncommand="TutTB_LoadURL('http://www.google.com/')" /> <menuseparator /> <menuitem label="Born Geek Website" accesskey="B" tooltiptext="Navigate to Born Geek" oncommand="TutTB_LoadURL('http://www.borngeek.com/')" /> </menupopup> </toolbarbutton> <toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem> <toolbarbutton id="TutTB-Combined-Button" label="Search" type="menu-button" tooltiptext="Combined Search" oncommand="TutTB_Search(event, 'web')"> <menupopup> <menuitem id="TutTB-Combined-Web" label="Web Search" class="menuitem-iconic" tooltiptext="Search the Web" oncommand="TutTB_Search(event, 'web'); event.preventBubble();" /> <menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" /> </menupopup> </toolbarbutton> <toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" label="Web Search" oncommand="TutTB_Search(event, 'web')" /> </toolbar> </toolbox> </overlay>
ÃÂ¥ÃÂïèêÿæÃÂôçÃÂÃÂççûéçÃÂæèÃÂèèà(Resizing Gripper)
éÃÂÃÂèèÃÂÃ¥þÃÂäùÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëÃÂ¥ÃÂè menulist äøàtoolbaritem Ã¥àÃÂçôàæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂàpersist Ã¥ñìæÃÂçÃÂ¥ÃÂÃÂïüÃÂèèÃÂÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäýÿçÃÂèæÃÂÃÂéÃÂÃÂïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂòÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥ïìÃ¥úæãÃÂÃÂçÃÂúäúÃÂèîÃÂäýÿçÃÂèèÃÂàÃÂ¥ÃÂïäûÃ¥æÃÂùèîÃÂÃ¥ïìÃ¥úæïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂæÃÂÃÂäþàççûéçÃÂæèÃÂèèàãÃÂÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂéÃÂÃÂäûöäúÃÂçÃÂÃÂÃ¥àÃÂçôàæÃÂï splitter ïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüïüÃÂ
<splitter id="TutTB-ResizeSplitter" state="open" collapse="none" resizebefore="closest" resizeafter="farthest" tooltiptext="Resize the Search Box"> <vbox id="TutTB-ResizeBar" /> </splitter>
éÃÂÃÂæÃÂï splitter çÃÂÃÂÃ¥ñìæÃÂçïüÃÂ
- state - æÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòæèÃÂèèÃÂæÃÂïÃÂ¥ÃÂææÃÂúçÃÂÃÂ(éÃÂñèÃÂÃÂ)Ã¥àçÃ¥îùïüàopen ÃÂ¥ÃÂüæÃÂÃÂÃ¥îÃÂäøÃÂçîáæÃÂïÃÂ¥ÃÂææÃÂÃÂÃ¥àçÃ¥îùçÃÂÃÂéáïçäúãÃÂÃÂ
- collapse - æñúÃ¥îÃÂÃÂ¥ÃÂêéÃÂÃÂçÃÂàsplitter èâëéÃÂñèÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè none ïüÃÂäøÃÂèîÃÂäûûäýÃÂäøÃÂéÃÂÃÂçÃÂàsplitter èâëéÃÂñèÃÂÃÂãÃÂÃÂ
- resizebefore - çÃÂö splitter æÃÂùèîÃÂæÃÂÃÂïüÃÂæÃÂÃÂÃ¥îàsplitter Ã¥÷æéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂêÃÂ¥ÃÂÃÂÃ¥àÃÂçôàÃ¥ÿàéàÃÂèâëéÃÂÃÂæÃÂðèêÿæÃÂôãÃÂÃÂçÃÂö splitter ççûÃÂ¥ÃÂÃÂæÃÂÃÂïüÃÂäýÿçÃÂè closest äþÃÂéÃÂÃÂæÃÂðèêÿæÃÂôæÃÂÃÂéÃÂàèÿàsplitter Ã¥÷æéÃÂÃÂçÃÂÃÂç÷èèüïÃÂ¥ÃÂÃÂãÃÂÃÂ
- resizeafter - çÃÂö splitter æÃÂùèîÃÂæÃÂÃÂïüÃÂæÃÂÃÂÃ¥îàsplitter ÃÂ¥ÃÂóéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂêÃÂ¥ÃÂÃÂÃ¥àÃÂçôàÃ¥ÿàéàÃÂèâëéÃÂÃÂæÃÂðèêÿæÃÂôãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè farthest äþÃÂéÃÂÃÂæÃÂðèêÿæÃÂôæÃÂÃÂÃÂ¥ÃÂóéÃÂÃÂçÃÂÃÂÃ¥ýÃÂæÃÂççéúéÃÂÃÂãÃÂÃÂ
vbox æÃÂïçÃÂèäþÃÂèèÃÂÃ¥îÃÂæèãÃ¥üÃÂçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂèçììäúÃÂçëàèèÃÂèëÃÂéÃÂâæÃÂÿæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂéûÃÂãÃÂàäýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet splitter element's attributes çÃÂÃÂÃÂ¥ÃÂðæÃÂôÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂÃÂ
èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂë splitter èÃÂàtoolbaritem çÃÂÃÂèæÃÂèüÃÂçèÃÂÃ¥üÃÂçâü[View XUL Overlay Revision 4]ïüÃÂ
<?xml version="1.0"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <toolbox id="navigator-toolbox"> <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> <toolbarbutton id="TutTB-MainMenu" type="menu" tooltiptext="Tutorial Toolbar Main Menu"> <menupopup> <menuitem label="Google Home Page" accesskey="G" tooltiptext="Navigate to Google" oncommand="TutTB_LoadURL('http://www.google.com/')" /> <menuseparator /> <menuitem label="Born Geek Website" accesskey="B" tooltiptext="Navigate to Born Geek" oncommand="TutTB_LoadURL('http://www.borngeek.com/')" /> </menupopup> </toolbarbutton> <toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem> <splitter id="TutTB-ResizeSplitter" state="open" collapse="none" resizebefore="closest" resizeafter="farthest" tooltiptext="Resize the Search Box"> <vbox id="TutTB-ResizeBar" /> </splitter> <toolbaritem flex="0"> <toolbarbutton id="TutTB-Combined-Button" label="Search" type="menu-button" tooltiptext="Combined Search" oncommand="TutTB_Search(event, 'web')"> <menupopup> <menuitem id="TutTB-Combined-Web" label="Web Search" class="menuitem-iconic" tooltiptext="Search the Web" oncommand="TutTB_Search(event, 'web'); event.preventBubble();" /> <menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" /> </menupopup> </toolbarbutton> <toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" label="Web Search" oncommand="TutTB_Search(event, 'web')" /> </toolbaritem> </toolbar> </toolbox> </overlay>
çÃÂúäúÃÂéÃÂÿÃ¥àÃÂççûéçÃÂæèÃÂèèÃÂèèÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçôðÃ¥þîéáïçäúÃÂ¥ÃÂÃÂéáÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéÃÂÃÂèæÃÂÃ¥ûúçëÃÂéáÃÂÃ¥äÃÂçÃÂàtoolbaritem ïüÃÂéÃÂÃÂèÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèãÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂãÃÂÃÂäøÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂäøÃÂæèããÃÂàÃÂ¥ÃÂÃÂäøÃÂæìáçâúÃ¥îàflex Ã¥ñìæÃÂççÃÂÃÂÃÂ¥ÃÂüçÃÂú 0ïüÃÂéÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÿÃ¥àÃÂïüÃÂçÃÂöæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂèâëæÃÂÃÂæÃÂóÃÂ¥ÃÂðÃ¥÷æéÃÂÃÂæÃÂÃÂèâëççûéÃÂäãÃÂÃÂ
æÃÂÃ¥èÃÂÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃ¥âÃÂÃÂ¥ÃÂàÃ¥àéÃÂ¥ÃÂÃÂéààçÃÂîãÃÂÃÂéæÃÂÃ¥àÃÂïüÃÂÃ¥ðàtoolbarseparator æÃÂþçýîÃÂ¥ÃÂèæÃÂÃÂÃ¥þÃÂÃ¥àéÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäøÃÂïüÃÂæÃÂäçÃÂîçÃÂÃÂæÃÂïçÃÂúäúÃÂèãÃÂéãþãÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂïüÃÂÃ¥ðàtoolbarspring æÃÂþçýîÃÂ¥ÃÂèæÃÂÃÂÃ¥þÃÂçÃÂàtoolbaritem Ã¥àÃÂçôàäùÃÂÃ¥þÃÂãÃÂÃÂThis spring will allow us to drag the resizer all the way to the right, so that we can see the full resizing effect in action. éÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂæèÃÂçäúæÃÂïÃ¥þÃÂçðáÃÂ¥ÃÂîçÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂæÃÂïéÃÂÃÂæèãïüÃÂ
<toolbarseparator /> <toolbarspring />
èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃ¥îÃÂæÃÂôçÃÂÃÂèæÃÂèüÃÂçïÃÂäþÃÂ[View XUL Overlay Revision 5]ïüÃÂ
<?xml version="1.0"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <toolbox id="navigator-toolbox"> <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> <toolbaritem flex="0"> <toolbarbutton id="TutTB-MainMenu" type="menu" tooltiptext="Tutorial Toolbar Main Menu"> <menupopup> <menuitem label="Google Home Page" accesskey="G" tooltiptext="Navigate to Google" oncommand="TutTB_LoadURL('http://www.google.com/')" /> <menuseparator /> <menuitem label="Born Geek Website" accesskey="B" tooltiptext="Navigate to Born Geek" oncommand="TutTB_LoadURL('http://www.borngeek.com/')" /> </menupopup> </toolbarbutton> </toolbaritem> <toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem> <splitter id="TutTB-ResizeSplitter" state="open" collapse="none" resizebefore="closest" resizeafter="farthest" tooltiptext="Resize the Search Box"> <vbox id="TutTB-ResizeBar" /> </splitter> <toolbaritem flex="0"> <toolbarbutton id="TutTB-Combined-Button" label="Search" type="menu-button" tooltiptext="Combined Search" oncommand="TutTB_Search(event, 'web')"> <menupopup> <menuitem id="TutTB-Combined-Web" label="Web Search" class="menuitem-iconic" tooltiptext="Search the Web" oncommand="TutTB_Search(event, 'web'); event.preventBubble();" /> <menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" /> </menupopup> </toolbarbutton> <toolbarseparator /> <toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" label="Web Search" oncommand="TutTB_Search(event, 'web')" /> </toolbaritem> <toolbarspring /> </toolbar> </toolbox> </overlay>
çììÃÂ¥ÃÂÃÂçëàïüÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂü (Dynamic Development)
(èÃÂïèÃÂàïüÃÂÃ¥æÃÂæÃÂÃÂäøÃÂæÃÂóçÃÂèæÃÂäéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃ¥éÃÂÃÂæÃÂäçëàïüÃÂäøæçÃÂèçììäøÃÂçëàçÃÂÃÂæÃÂùÃ¥üÃÂæøìèéæÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂ)
ÃÂ¥ÃÂè Firefox 1.5 äøÃÂïüÃÂÃÂ¥ÃÂÃÂæàÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüæÃÂïæÃÂðçÃÂÃÂæÃÂÃÂèáÃÂïüÃÂÃ¥ðÃÂéÃÂÃÂçÃÂüèÃÂàèÃÂÃÂèèÃÂïüÃÂéÃÂÃÂæÃÂïæÃÂÃÂæÃÂÃÂçÃÂèçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂÃÂèÃÂýãÃÂÃÂéÃÂÃÂéààæÃÂÃÂèáÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàÃÂ¥ÃÂèéÃÂÃÂçÃÂüÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂïüÃÂÃÂ¥ÃÂóæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂÃÂ¥ÃÂðçõÃÂæÃÂÃÂãÃÂÃÂçÃÂöäýàèæÃÂæøìèéæ XUL èæÃÂèüÃÂæÃÂÃÂæÃÂï JavaScript çèÃÂÃ¥üÃÂçâüæÃÂÃÂïüÃÂäøÃÂçÃÂèæïÃÂæìáÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂðÃ¥ðÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂêçïÃÂçÃÂÃÂäúÃÂäýàçÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂäùÃÂèîÃÂäýàèÃÂýæÃÂôÃ¥ÿëéÃÂÃÂÃÂ¥ÃÂðéÃÂäéÃÂïãÃÂÃÂ
éÃÂãéúüïüÃÂéÃÂÃÂéààçÃÂùèÃÂòæÃÂïÃ¥æÃÂäýÃÂéÃÂÃÂäýÃÂçÃÂÃÂÃÂ¥ÃÂâïüÃÂéÃÂÃÂÃ¥ðñèæÃÂæÃÂÃÂèìÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçììäúÃÂçëàÃ¥ûúçëÃÂçÃÂàchrome æøàÃÂ¥ÃÂîäúÃÂãÃÂÃÂçÃÂôÃÂ¥ÃÂðçÃÂþÃÂ¥ÃÂèçÃÂúæÃÂâïüÃÂæÃÂÃÂéÃÂýéÃÂÃÂæòÃÂè÷ÃÂäýàèêê chrome æøàÃÂ¥ÃÂîèéæäýÃÂçÃÂÃÂéúüçÃÂèéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂéÃÂÃÂÃ¥çÃÂÃ¥ûúçëÃÂçÃÂÃÂçÃÂÃÂæÃÂìÃ¥ðñæÃÂïçÃÂùÃÂ¥ÃÂÃ¥çÃÂúÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüèÃÂÃÂèèÃÂèèÃÂçÃÂÃÂãÃÂÃÂæÃÂÃÂèèÃÂäùÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂÃ¥ÿàéÃÂÃÂæÃÂðÃ¥ðÃÂèãÃÂéÃÂãäûýçÃÂÃÂæÃÂìçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂäýÃÂéÃÂÃÂæÃÂïæÃÂÃÂäúÃÂæÃÂùèîÃÂéÃÂÃÂèæÃÂÃ¥îÃÂæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂïäûÃ¥åðÃÂèãÃÂãÃÂÃÂæÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂçÃÂèäþÃÂãÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüçÃÂÃÂæÃÂÃ¥ééÃÂïüÃÂÃÂ¥ÃÂèéÃÂãäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂèæÃÂÃ¥àÃÂçõæäýàÃ¥ùþÃÂ¥ÃÂÃÂÃ¥ûúèÃÂðãÃÂÃÂ
æóèæÃÂÃÂäúÃÂéàà(A Word of Warning)
ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüæÃÂÃÂæÃÂÃÂæÃÂÃÂæÃÂÃÂéûÃÂÃÂ¥ÃÂñéÃÂêïüÃÂÃ¥ðäÃ¥àöæÃÂïèèÃÂèèàXUL èæÃÂèüÃÂæêÃÂæáÃÂæÃÂÃÂãÃÂÃÂæÃÂÃÂÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàèæÃÂéÃÂÿÃ¥àÃÂéÃÂÃÂçÃÂüÃÂ¥ÃÂ¥ÃÂäûöè÷ÃÂÃ¥ùóÃ¥øøçÃÂÃÂèæýçöòéàÃÂÃ¥àñçÃÂèäøÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂ(profile)ãÃÂÃÂæÃÂÃÂèèÃÂäùÃÂïüÃÂäýàÃ¥ÿàéàÃÂçÃÂúäýàçÃÂÃÂéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂðçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÿÃ¥àÃÂäýàÃ¥äñÃÂ¥ÃÂûäøÃÂäúÃÂéÃÂÃÂéÃÂõçÃÂÃÂèóÃÂæÃÂÃÂïüÃÂÃ¥æÃÂïüÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥ïÃÂçâüãÃÂÃÂcookiesãÃÂÃÂæÃÂøçñäæÃÂÃÂæÃÂïÃ¥àöäûÃÂäýàäøÃÂæÃÂóéÃÂúÃ¥äñçÃÂÃÂæÃÂñèÃ¥ÿãÃÂÃÂ
æÃÂÃÂÃ¥øÃÂæÃÂÃÂèÃÂýÃÂ¥ÃÂÃÂÃ¥ÿë Born Geek ÃÂ¥ÃÂèçÃÂüèáèéÃÂÃÂæÃÂüÃ¥æÃÂäýÃÂÃ¥ûúçëÃÂèÃÂÃÂäýÿçÃÂèèèÃÂÃ¥îÃÂæêÃÂçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂøãÃÂÃÂÃÂ¥ÃÂèéÃÂãäùÃÂÃÂ¥ÃÂÃÂïüÃÂäýàÃÂ¥ÃÂïäûÃ¥åàÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂè Mozilla.org çÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäûöãÃÂÃÂÃ¥ûúçëÃÂèÃÂÃÂäýÿçÃÂèèèÃÂÃ¥îÃÂæêÃÂæÃÂïÃ¥þÃÂçðáÃÂ¥ÃÂîçÃÂÃÂïüÃÂéÃÂÃÂæÃÂÃÂéÃÂÿÃ¥àÃÂèîÃÂäýàéàÃÂçÃÂÃÂçÃÂÃÂæÃÂàæóÃÂçÃÂüçÃÂÃÂãÃÂÃÂ
Ã¥æÃÂäýÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂü (How to Develop Dynamically)
æÃÂÃÂäøûèæÃÂçÃÂÃÂÃ¥÷Ã¥äýÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂÃÂ¥ÃÂè chrome æøàÃÂ¥ÃÂîÃ¥îÃÂæÃÂÃÂ(ÃÂ¥ÃÂóäýÿäýàéÃÂÃÂäøÃÂäúÃÂèçãæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂãæÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂäûÃÂéúü)ãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂçÃÂÃÂïüÃÂæÃÂïäøÃÂÃÂ¥ÃÂÃÂÃ¥ðàFirefox æÃÂÃÂÃÂ¥ÃÂÃÂçáìçâÃÂäøÃÂÃÂ¥ÃÂ¥ÃÂäûöäýÃÂçýîçÃÂÃÂæêÃÂæáÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèÃÂÃÂçÃÂñ pointer æêÃÂæáÃÂäþÃÂÃ¥îÃÂæÃÂÃÂãÃÂÃÂ
éæÃÂÃ¥àÃÂïüÃÂÃÂ¥ÃÂèäýàçÃÂÃÂéÃÂûèàæçÃÂÃÂéÃÂèäþÿäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂùïüÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂî(install manifest)äøÃÂæÃÂÃÂäýÿçÃÂèçÃÂàGUID ÃÂ¥ÃÂÃÂçèñïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè tuttoolbar@borngeek.com äýÃÂçÃÂúæêÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäøÃÂÃ¥ùøçÃÂÃÂæÃÂïïüÃÂÃÂ¥ÃÂèÃ¥þîèûÃÂèæÃÂçêÃÂçÃÂðÃ¥âÃÂèãáïüÃÂãÃÂÃÂ.comãÃÂÃÂçÃÂÃÂæêÃÂæáÃÂæÃÂïèâëçÃÂèäþÃÂçÃÂöäýÃÂÃÂ¥ÃÂ÷èáÃÂæêÃÂïüÃÂèÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂçÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥æÃÂÃÂãÃÂÃÂ.comãÃÂÃÂæÃÂÿæÃÂÃÂïüÃÂäýÃÂäùÃÂèèÃÂÃ¥þÃÂÃÂ¥ÃÂûäÿîæÃÂùÃÂ¥ÃÂèÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂîçÃÂàGUIDïüÃÂçâúäÿÃÂÃ¥àéÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñæÃÂïäøÃÂæèãçÃÂÃÂãÃÂÃÂ
ÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèæÃÂèüøÃ¥àÃ¥äøÃÂèáÃÂæÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂòÃÂ¥ÃÂÃÂçÃÂÃÂçõÃÂÃ¥ðÃÂäýÃÂçýîïüÃÂäùÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂÃÂæÃÂþ install.rdf èÃÂàchrome.manifest æêÃÂæáÃÂçÃÂÃÂçÃÂîéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂçÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂè÷ïÃ¥þÃÂÃ¥æÃÂäøÃÂïüÃÂ
C:\Born Geek\TutToolbar
äýàÃ¥ÿàéàÃÂäýÿçÃÂèäýàèÃÂêÃ¥÷ñèèÃÂÃ¥îÃÂçÃÂÃÂè÷ïÃ¥þÃÂïüÃÂéÃÂäéÃÂÃÂäýàçÃÂÃÂè÷ïÃ¥þÃÂè÷ÃÂæÃÂÃÂçÃÂÃÂäøÃÂæèããÃÂÃÂèüøÃ¥àÃ¥åîÃÂè÷ïÃ¥þÃÂÃ¥þÃÂïüÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂæêÃÂæáÃÂãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃ¥ðÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðè÷ÃÂéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂ(profile)ÃÂ¥ÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂ(Ã¥æÃÂïüÃÂC:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles)ãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäûöæÃÂÃÂèèÃÂèëÃÂÃÂ¥ÃÂðèèÃÂÃ¥îÃÂæêÃÂçÃÂîéÃÂÃÂçÃÂÃÂäýÃÂçýîãÃÂÃÂçÃÂöäýàæÃÂþÃÂ¥ÃÂðèèÃÂÃ¥îÃÂæêÃÂçÃÂîéÃÂÃÂæÃÂÃÂïüÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàpointer æêÃÂæáÃÂççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðèéòçÃÂîéÃÂÃÂçÃÂàextensions çÃÂîéÃÂÃÂäøÃÂãÃÂÃÂéÃÂÃÂæÃÂïæÃÂÃÂçÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂ
+- tl5wlpz3.Nightly/ +- bookmarkbackups/ +- chrome/ +- extensions/ +- tuttoolbar@borngeek.com +- (... other files and folders ...)
äýàÃÂ¥ÃÂïäûÃ¥çÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂïüÃÂæÃÂÃÂäýÿçÃÂèäûÃ¥ãÃÂÃÂNightlyãÃÂÃÂçÃÂúÃÂ¥ÃÂÃÂçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂïüÃÂäþÃÂäýÃÂçÃÂúæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂãÃÂÃÂäøÃÂæÃÂæäýàæÃÂàpointer æêÃÂæáÃÂæÃÂþÃÂ¥ÃÂèéÃÂéçÃÂöçÃÂÃÂäýÃÂçýîïüÃÂéÃÂÃÂÃÂ¥ÃÂàFirefoxïüÃÂçâúÃ¥îÃÂäýàäýÿçÃÂèçÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂ(ÃÂ¥ÃÂÃÂæìáæÃÂÃÂéÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäûöæÃÂÃÂÃÂ¥ÃÂÃÂèèôäýàÃ¥æÃÂäýÃÂéÃÂÃÂæèãÃÂ¥ÃÂÃÂ)ãÃÂàÃÂ¥ÃÂðçÃÂîÃÂ¥ÃÂÃÂçÃÂúæÃÂâïüÃÂÃ¥æÃÂæÃÂÃÂäýàæïÃÂæèãéÃÂýÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂãçâúïüÃÂäýàæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðæòÃÂæÃÂÃÂéÃÂâæÃÂÿçÃÂÃÂçÃÂðèÃÂòÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂÃÂ
éÃÂÃÂçÃÂüéÃÂñæÃÂà(The Development Cycle)
çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂïüÃÂéÃÂãèæÃÂÃ¥æÃÂäýÃÂÃÂ¥ÃÂûÃÂ¥ÃÂéçÃÂèÃÂ¥ÃÂâïüÃÂéÃÂÃÂçèÃÂÃ¥àöÃ¥ïææÃÂïéÃÂÃÂÃ¥øøçðáÃÂ¥ÃÂîçÃÂÃÂïüÃÂ
- ç÷èèüïäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöæêÃÂæáÃÂ
- éÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òæÃÂôæÃÂùæêÃÂæáÃÂæÃÂÃÂÃÂ¥ÃÂ¥ÃÂçÃÂèçÃÂÃÂèæÃÂçêÃÂïüÃÂæÃÂÃÂæÃÂïäýÿçÃÂè Extension Developer's Extension çÃÂÃÂéÃÂÃÂæÃÂðæÃÂôçÃÂÃÂ(Reload Chrome)ãÃÂÃÂ
æÃÂÃÂÃ¥àéäûöäúÃÂæÃÂïäýàèæÃÂçÃÂÃ¥éÃÂÃÂçÃÂÃÂïüÃÂ
- Ã¥æÃÂæÃÂÃÂäýàæÃÂùèîÃÂäúàchrome.manifest æêÃÂæáÃÂïüÃÂäýàÃ¥ÿàéàÃÂéÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂàFirefox (éÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂÃÂ¥ÃÂêæÃÂÃÂÃÂ¥ÃÂèçèÃÂÃ¥üÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂè)ãÃÂÃÂ
- Ã¥æÃÂæÃÂÃÂäýàæÃÂùèîÃÂäúàinstall.rdf æêÃÂæáÃÂïüÃÂäýàÃ¥ÿàéàÃÂæÃÂùèîàpointer æêÃÂæáÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂçÃÂÃÂäÿîæÃÂùæÃÂÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂè Linux äøÃÂïüÃÂäýàÃÂ¥ÃÂêèæÃÂäýÿçÃÂè touch æÃÂÃÂäûäãÃÂÃÂèÃÂÃÂÃÂ¥ÃÂè Windows èãáÃ¥ðñæÃÂÃÂéûÃÂéÃÂãÃ¥úæïüÃÂéÃÂäéÃÂÃÂäýàÃ¥îÃÂèãÃÂäúÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂè touch æÃÂÃÂäûäçÃÂàCygwin Ã¥÷Ã¥åà÷ãÃÂÃÂÃÂ¥ÃÂïäøÃÂèæÃÂÃÂ¥ÃÂÃÂçÃÂÃÂïüÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂðçÃÂîéÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂêéÃÂäæÃÂðçÃÂîéÃÂÃÂäûÃ¥æÃÂùèîÃÂçÃÂîéÃÂÃÂçÃÂÃÂãÃÂÃÂäøÃÂäøÃÂæìáäÿîæÃÂùãÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂ
äýàÃÂ¥ÃÂïäûÃ¥çÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäúÃÂæÃÂùäþÿçÃÂÃÂéÃÂÃÂçÃÂüèÃÂÃÂéÃÂäéÃÂïÃ¥÷Ã¥åà÷ãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂüïüÃÂÃÂ¥ÃÂè 1.5 çÃÂÃÂäùÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæèÃÂæúÃÂéÃÂÃÂçèÃÂïüÃÂÃ¥ðñæÃÂïæïÃÂæìáÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüéÃÂÃÂçèÃÂéÃÂýèæÃÂÃ¥ðÃÂèãÃÂæêÃÂæáÃÂãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéÃÂÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂèîÃÂÃ¥þÃÂæÃÂôæüÃÂäúîäøÃÂéûÃÂÃÂ¥ÃÂçïüÃÂ
çììäúÃÂçëàïüÃÂéÃÂâæÃÂÿèãýäýà(Skinning the Toolbar)
éÃÂâæÃÂÿæÃÂïçÃÂñæèãÃ¥üÃÂæèÃÂæúÃÂèÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂæçÃÂæÃÂÃÂçÃÂÃÂãÃÂÃÂèèÃÂäýÃÂïüÃÂÃÂ¥ÃÂÃÂçîáèèÃÂèèÃÂéÃÂâæÃÂÿæÃÂïéÃÂÃÂÃ¥ÿàèæÃÂçÃÂÃÂïüÃÂäýÃÂæÃÂïÃ¥îÃÂèÃÂýæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂèóêãÃÂÃÂçÃÂâçëÃÂäýÿçÃÂèèÃÂàÃ¥ðÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂçììäøÃÂÃÂ¥ÃÂðèñáæÃÂïÃ¥îÃÂçÃÂÃÂÃ¥äÃÂèçÃÂïüÃÂèÃÂÃÂäøÃÂæÃÂïÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂýãÃÂÃÂçÃÂöèÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂäýàèæúÃ¥þÃÂäýÿçÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂæèÃÂçñäèîÃÂäýàæïÃÂèüÃÂèÃÂêÃÂ¥ÃÂèïüÃÂæÃÂÃÂæÃÂïäøÃÂéÃÂÃÂèæÃÂÃ¥ûúçëÃÂÃ¥äÃÂèçÃÂïüÃÂäýàÃÂ¥ÃÂïäûÃ¥çÃÂÃ¥éÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçëàçïÃÂãÃÂÃÂ
æÃÂôæÃÂðæêÃÂæáÃÂçõÃÂæçà(Updating the File Structure)
èèÃÂèèÃÂéÃÂâæÃÂÿçÃÂÃÂçììäøÃÂæÃÂÃ¥åðñæÃÂïÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþéÃÂÃÂæÃÂüéÃÂâæÃÂÿçÃÂÃÂæêÃÂæáÃÂãÃÂÃÂÃÂ¥ÃÂè chrome çÃÂîéÃÂÃÂäøÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂàskin çÃÂîéÃÂÃÂãÃÂÃÂæêÃÂæáÃÂçõÃÂæçÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæèãïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome.manifest +- chrome/ +- content/ +- tuttoolbar.xul +- skin/
çÃÂþÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþéÃÂâæÃÂÿæêÃÂæáÃÂçÃÂÃÂÃÂ¥ÃÂðæÃÂùäúÃÂïüÃÂäùÃÂÃ¥þÃÂÃ¥ÿàéàÃÂèæÃÂÃÂ¥ÃÂè chrome èãáèèûÃÂ¥ÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂäýÃÂçýîãÃÂÃÂ
æÃÂôæÃÂð Chrome æøàÃÂ¥ÃÂî (Updating the Chrome Manifest)
éÃÂÃÂèèÃÂÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçììäúÃÂçëàÃ¥ûúçëÃÂçÃÂàchrome æøàÃÂ¥ÃÂîÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂÃÂ¥ÃÂàÃ¥àÃ¥äøÃÂèáÃÂçèÃÂÃ¥üÃÂçâüïüÃÂçÃÂèäþÃÂèèûÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂâæÃÂÿãÃÂÃÂæÃÂðÃÂ¥ÃÂàÃ¥àÃ¥çÃÂÃÂäýÃÂçýî(çììäøÃÂèáÃÂ)ïüÃÂ
content tuttoolbar chrome/content/ overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul skin tuttoolbar classic/1.0 chrome/skin/
æÃÂðÃÂ¥ÃÂàÃ¥àÃ¥çÃÂÃÂéÃÂÃÂäøÃÂèáÃÂçÃÂøçÃÂöçðáÃÂ¥ÃÂîïüÃÂèÃÂÃÂäøÃÂÃÂ¥ÃÂêæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéÃÂèäûýãÃÂÃÂçììäøÃÂéÃÂèäûýïüÃÂskin èêêæÃÂÃÂéÃÂÃÂäøÃÂèáÃÂèæÃÂèèûÃÂ¥ÃÂÃÂéÃÂâæÃÂÿçÃÂÃÂèóÃÂèèÃÂãÃÂÃÂæÃÂÃ¥èÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂçèñïüÃÂéÃÂÃÂèãáäýÿçÃÂè tuttoolbar çÃÂöäýÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñãÃÂÃÂçììäøÃÂéÃÂèäûýïüÃÂèêêæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂæÃÂôÃ¥ñÃÂçÃÂÃÂÃ¥÷òÃ¥îÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñïüÃÂãÃÂÃÂclassic/1.0ãÃÂÃÂæÃÂïäýàæÃÂÃÂäøÃÂçÃÂôçÃÂèÃÂ¥ÃÂðçÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂäùÃÂæÃÂïæÃÂÃÂéÃÂÃÂèæÃÂçÃÂÃÂéÃÂèäûýïüÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂàÃÂ¥ÃÂëéÃÂâæÃÂÿæêÃÂæáÃÂçÃÂÃÂçÃÂîéÃÂÃÂè÷ïÃ¥þÃÂãÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂÃÂ¥ÃÂÃÂè÷ïÃ¥þÃÂÃ¥þÃÂéÃÂâçÃÂÃÂæÃÂÃÂç÷ÃÂ(/)ïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂç÷ÃÂæÃÂïÃ¥ÿàèæÃÂçÃÂÃÂïüÃÂçâúÃ¥îÃÂäýàæÃÂÃÂèüøÃ¥àÃ¥ãÃÂÃÂ
Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæêÃÂæáà(Creating the Image Files)
æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèîÃÂæïÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂèÃÂ¥ÃÂÃÂèÃÂêçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂéÃÂÃÂäøÃÂæÃÂïæÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂæÃÂÃÂæÃÂïçòþç÷ûçÃÂÃÂäýÃÂæóÃÂïüÃÂäýÃÂæÃÂïÃÂ¥ÃÂïäûÃ¥èîÃÂäúúæÃÂôÃ¥îùæÃÂÃÂäúÃÂèçããÃÂÃÂæÃÂôÃ¥åýçÃÂÃÂæÃÂùÃ¥üÃÂæÃÂïäýÿçÃÂèÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæèãÃ¥üÃÂèáèïüÃÂäýÃÂæÃÂïéÃÂãèöàÃÂ¥ÃÂúéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçïÃÂÃÂ¥ÃÂÃÂãÃÂÃÂ
æÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂÃÂçõÃÂÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂîäýÿçÃÂèïüÃÂäøûèæÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂçöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂéÃÂøÃÂ¥ÃÂîäûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂïèêÿæÃÂôçÃÂÃÂççûéçÃÂæèÃÂèèÃÂãÃÂÃÂÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂÃÂ¥ÃÂÃÂèáèäøÃÂïüÃÂæÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂèÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂæóèæÃÂÃÂïüàéÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéÃÂýæÃÂïéÃÂÃÂæÃÂÃÂçÃÂàPNG æàüÃ¥üÃÂæêÃÂæáÃÂïüÃÂÃ¥æÃÂæÃÂÃÂäýàäýÿçÃÂè IE æÃÂÃÂæÃÂïÃ¥àöäûÃÂçÃÂÃÂèæýÃÂ¥ÃÂèïüÃÂÃÂ¥ÃÂïèÃÂýäøÃÂèÃÂýæÃÂãçâúÃÂ¥ÃÂðéáïçäúãÃÂÃÂ
äøûèæÃÂéÃÂøÃÂ¥ÃÂîÃÂ¥ÃÂÃÂçäú Main Menu Icon (main.png): http://wiki.moztw.org/uimages/b/b7/Borngeek_main.png
çöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂçäú Combined Search Icon (combined.png): http://wiki.moztw.org/uimages/3/36/Borngeek_combined.png
çöòéàÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂçäú Web Search Icon (web.png): http://wiki.moztw.org/uimages/9/9c/Borngeek_web.png
ÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂçäú Images Search Icon (images.png): http://wiki.moztw.org/uimages/6/61/Borngeek_images.png
ÃÂ¥ÃÂïèêÿæÃÂôççûéçÃÂæèÃÂèèÃÂÃÂ¥ÃÂÃÂçäú Resizing Gripper Icon (gripper.png): http://wiki.moztw.org/uimages/5/50/Borngeek_gripper.png
Ã¥ðÃÂéÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàskin çÃÂîéÃÂÃÂèãáïüÃÂæêÃÂæáÃÂçõÃÂæçÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæèãïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome.manifest +- chrome/ +- content/ +- tuttoolbar.xul +- skin/ +- combined.png +- gripper.png +- images.png +- main.png +- web.png
èÃÂÃÂçÃÂñäøòæÃÂÃ¥æèãÃ¥üÃÂèáèÃÂ¥ÃÂ¥ÃÂçÃÂèÃÂ¥ÃÂÃÂçÃÂà(Applying the Images with CSS)
çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂéÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèïüÃÂéÃÂâæÃÂÿçÃÂîéÃÂÃÂäùÃÂÃ¥÷òçöÃÂèèûÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂçÃÂèÃÂ¥ÃÂèÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäøÃÂäúÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂèÃÂÃÂçÃÂñ CSS äþÃÂÃ¥îÃÂæÃÂÃÂãÃÂÃÂÃ¥ðñÃ¥æÃÂæÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂéÃÂÃÂÃ¥çÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂäýàÃ¥ðàCSS äøÃÂçÃÂÃÂæÃÂÃÂïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂèÃÂàW3Schools çÃÂàexcellent CSS tutorial ãÃÂÃÂ
èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂÃ¥ûúçëàCSS æêÃÂæáÃÂÃÂ¥ÃÂçïüÃÂÃÂ¥ÃÂè skin çÃÂîéÃÂÃÂäøÃÂïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂçÃÂú tuttoolbar.css çÃÂÃÂæêÃÂæáÃÂïüÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂè÷ÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂèäøÃÂèõ÷ãÃÂÃÂæêÃÂæáÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome.manifest +- chrome/ +- content/ +- tuttoolbar.xul +- skin/ +- combined.png +- gripper.png +- images.png +- main.png +- web.png +- tuttoolbar.css
ÃÂ¥ÃÂèèêêæÃÂÃÂçôðçïÃÂÃÂ¥ÃÂÃÂïüÃÂÃ¥àÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂæèãÃ¥üÃÂèáèçÃÂÃÂÃ¥àçÃ¥îùïüÃÂ
#TutTB-MainMenu { list-style-image: url("chrome://tuttoolbar/skin/main.png"); } #TutTB-Combined-Button { list-style-image: url("chrome://tuttoolbar/skin/combined.png"); } #TutTB-Combined-Button > .toolbarbutton-menubutton-button { -moz-box-orient: horizontal; } #TutTB-Web-Button, #TutTB-Combined-Web { list-style-image: url("chrome://tuttoolbar/skin/web.png"); } #TutTB-Combined-Image { list-style-image: url("chrome://tuttoolbar/skin/images.png"); } #TutTB-ResizeBar { background-image: url("chrome://tuttoolbar/skin/gripper.png"); min-height: 22px; min-width: 3px; } #TutTB-ResizeSplitter { background: transparent; border: none !important; }
çììäøÃÂéààèæÃÂÃÂ¥ÃÂÃÂæÃÂïæÃÂÃÂÃ¥îÃÂèéòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçõæãÃÂÃÂäøûèæÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂèãÃÂÃÂÃÂ¥ÃÂÃÂéáçäøÃÂäøÃÂçììäøÃÂçëàïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçõæäúÃÂèéòæÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂàID ÃÂ¥ÃÂüïüÃÂTutTB-MainMenuïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂèèéòÃÂ¥ÃÂüäþÃÂèèÃÂÃ¥îÃÂæÃÂÃÂéÃÂÃÂéáïçäúçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèÃÂ¥ÃÂÃÂéÃÂâçÃÂÃÂäúÃÂèÃÂÃÂ(#)æÃÂï ID éÃÂøÃÂ¥ÃÂÃÂÃÂ¥ÃÂè(ID selector)ïüÃÂäùÃÂÃ¥ðñæÃÂïçÃÂèäþÃÂæÃÂÃÂÃ¥îàCSS Ã¥àÃÂçôàèæÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂùÃ¥îÃÂèÃÂÃÂÃÂ¥ÃÂÃÂ¥ÃÂ¥ÃÂüãÃÂÃÂÃÂ¥ÃÂèÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè CSS Ã¥ñìæÃÂççÃÂàlist-style-image äþÃÂæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂèçÃÂÃÂæÃÂï chrome è÷ïÃ¥þÃÂïüÃÂäùÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂ¥ÃÂäûöæêÃÂæáÃÂçõÃÂæçÃÂäøÃÂçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂè÷ïÃ¥þÃÂïüÃÂÃ¥øøçÃÂèçÃÂÃÂæàüÃ¥üÃÂÃ¥æÃÂäøÃÂïüÃÂ
chrome://<packagename>/skin/<image_file_name>
ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçïÃÂäþÃÂèãáïüÃÂÃ¥ðÃÂèãÃÂÃÂ¥ÃÂÃÂçèñ(package name)æÃÂï tuttoolbarïüÃÂèÃÂÃÂäøûèæÃÂéÃÂøÃÂ¥ÃÂîäýÿçÃÂèçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñçÃÂú main.pngãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥çÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂèéáÃÂäüüçÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂèçöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîäùÃÂæÃÂïäøÃÂæèããÃÂÃÂThere's one caveat to handling menu item icons, however. ÃÂ¥ÃÂÃÂæÃÂóäøÃÂäøÃÂïüÃÂÃÂ¥ÃÂèçöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂéÃÂøÃÂ¥ÃÂîäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂúéÃÂøÃÂ¥ÃÂîéààçÃÂîäýÿçÃÂèäúÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂùÃÂ¥ÃÂÃ¥çÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂ¥ÃÂ¥ÃÂüïüÃÂmenuitem-iconicïüÃÂéÃÂÃÂæÃÂï Firefox Ã¥àçÃ¥ûúçÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂçäúæÃÂïæÃÂôäýÿçÃÂèÃ¥îÃÂçÃÂÃÂæïÃÂÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîãÃÂÃÂ
æÃÂóÃ¥ÿàäýàäùÃÂæóèæÃÂÃÂÃÂ¥ÃÂðäúÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂçÃÂùÃ¥îÃÂèæÃÂÃÂ¥ÃÂÃÂïüÃÂ
#TutTB-Combined-Button > .toolbarbutton-menubutton-button { -moz-box-orient: horizontal; }
éÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃÂ¥ÃÂÃ¥çÃÂàCSS Ã¥ñìæÃÂçÃÂ¥ÃÂèéÃÂÃÂèãáäýÿçÃÂè -moz-box-orientïüÃÂéÃÂÃÂæÃÂÃÂÃ¥îÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂæèÃÂçñäèéòÃ¥æÃÂäýÃÂéáïçäúïüÃÂæðôÃ¥ùóæÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂçÃÂôéáïçäúãÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂæèÃÂçñäçÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂüæÃÂïÃÂ¥ÃÂÃÂçÃÂôéáïçäúïüÃÂäùÃÂÃ¥ðñæÃÂïéáïçäúÃÂ¥ÃÂèÃÂ¥ÃÂÃÂçäúäøÃÂæÃÂùãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂäøÃÂäýÿçÃÂèéÃÂÃÂæèãçÃÂÃÂæÃÂùÃ¥üÃÂïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂùçÃÂúæðôÃ¥ùóéáïçäúïüÃÂäûÃ¥äýÿæèÃÂçñäéáïçäúÃÂ¥ÃÂèÃÂ¥ÃÂÃÂçäúäùÃÂÃ¥þÃÂãÃÂÃÂ
ÃÂ¥ÃÂèèÃÂÃÂçÃÂÃÂÃÂ¥ÃÂïèêÿæÃÂôçÃÂÃÂççûéçÃÂæèÃÂèèÃÂ(resizing gripper)æÃÂÃÂïüÃÂæÃÂÃÂÃ¥àéæâÃÂæèãÃ¥üÃÂèáèçÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂÃÂèèÃÂÃ¥þÃÂÃÂ¥ÃÂèçììÃÂ¥ÃÂÃÂçëàèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèÃÂ¥ÃÂÃÂéÃÂâçÃÂÃÂÃ¥àÃÂçôà(splitter element)äýÿçÃÂèçÃÂàvbox Ã¥àÃÂçôàÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂúççûéçÃÂæèÃÂèèÃÂäýÿçÃÂèäúàvbox äþÃÂéáïçäúèÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂÃÂæìáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè background-image Ã¥ñìæÃÂçãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂèÃÂÃÂçÃÂñ min-height èÃÂàmin-width Ã¥ñìæÃÂçïüÃÂæÃÂÃÂäþÃÂæÃÂÃÂÃ¥ðÃÂéëÃÂÃ¥úæèÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃ¥ïìÃ¥úæïüÃÂäûÃ¥èîÃÂççûéçÃÂæèÃÂèèÃÂéáïçäúÃÂ¥ÃÂúäþÃÂãÃÂÃÂvbox èÃÂàhbox Ã¥ñìæÃÂççÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂüÃÂ¥ÃÂïèÃÂýæÃÂïäþÃÂÃ¥àçÃ¥îùÃ¥äçÃ¥ðÃÂÃÂ¥ÃÂäÃ¥îÃÂãÃÂÃÂçÃÂñæÃÂü vbox æÃÂïçéúçÃÂÃÂïüÃÂéàÃÂèèÃÂÃÂ¥ÃÂüÃ¥ðñæÃÂï 0ïüÃÂéÃÂÃÂäùÃÂéÃÂÿÃ¥àÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðèÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂ
æÃÂÃÂÃÂ¥ÃÂÃÂäùÃÂçÃÂúÃÂ¥ÃÂÃÂéÃÂâçÃÂÃÂÃ¥àÃÂçôàæÃÂÃÂäþÃÂäøÃÂæâÃÂèæÃÂÃÂ¥ÃÂÃÂãÃÂàæÃÂÃÂÃÂ¥ÃÂÃÂèîÃÂèÃÂÃÂæÃÂïæÃÂïéÃÂÃÂæÃÂÃÂçÃÂÃÂïüÃÂèÃÂÃÂäøÃÂäøÃÂäýÿçÃÂèéÃÂÃÂæáÃÂ(ÃÂ¥ÃÂÃÂéÃÂâÃ¥àÃÂçôàçÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂüæÃÂïæÃÂÃÂäýÿçÃÂèéÃÂÃÂæáÃÂçÃÂÃÂ)ãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂCSS æêÃÂæáÃÂÃ¥÷òçöÃÂÃ¥îÃÂæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂèèÃÂÃ¥îÃÂèæÃÂèüÃÂ(overlay)äûÃ¥äýÿçÃÂèÃ¥îÃÂãÃÂÃÂ
äýÿçÃÂèæèãÃ¥üÃÂèáè (Using the Style Sheet)
ÃÂ¥ÃÂêæÃÂÃÂäøÃÂèáÃÂçèÃÂÃ¥üÃÂçâüæÃÂïéÃÂÃÂèæÃÂèâëÃÂ¥ÃÂàÃ¥àÃÂ¥ÃÂ¥ÃÂè XUL èæÃÂèüÃÂçÃÂÃÂïüÃÂéÃÂÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂÃÂæèãÃ¥üÃÂèáèãÃÂÃÂéÃÂÃÂÃ¥ÿàéàÃÂæÃÂþçýîÃÂ¥ÃÂè XML Ã¥îãÃÂ¥ÃÂÃÂæÃÂÃÂäûäçÃÂÃÂäøÃÂæÃÂùïüÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂèæÃÂèüÃÂ(overlay)Ã¥àÃÂçôàäùÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäøÃÂéÃÂâïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúèæÃÂèüÃÂæêÃÂæáÃÂçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ùþèáÃÂéÃÂÃÂèæÃÂæÃÂôÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðæÃÂùïüÃÂ
<?xml version="1.0"?> <?xml-stylesheet href="chrome://tuttoolbar/skin/tuttoolbar.css" type="text/css"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> (... rest of XUL overlay file ...)
Ã¥ðñÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèæèãÃ¥üÃÂèáèäøÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂæèãïüÃÂchrome è÷ïÃ¥þÃÂèâëçÃÂèäþÃÂæÃÂÃÂÃ¥îÃÂäýÃÂçýîãÃÂÃÂèÃÂàtype Ã¥ñìæÃÂçÃÂ¥ÃÂêæÃÂïæÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂï CSS çÃÂÃÂæêÃÂæáÃÂãÃÂÃÂçÃÂþÃÂ¥ÃÂèèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂèæÃÂèüÃÂæêÃÂæáÃÂÃÂ¥ÃÂèÃÂ¥ÃÂàÃ¥àÃ¥éÃÂÃÂäøÃÂèáÃÂÃ¥þÃÂçÃÂÃÂÃ¥îÃÂæÃÂôÃ¥àçÃ¥îù[View XUL Overlay Revision 6]ïüÃÂ
<?xml version="1.0"?> <?xml-stylesheet href="chrome://tuttoolbar/skin/tuttoolbar.css" type="text/css"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <toolbox id="navigator-toolbox"> <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> <toolbaritem flex="0"> <toolbarbutton id="TutTB-MainMenu" type="menu" tooltiptext="Tutorial Toolbar Main Menu"> <menupopup> <menuitem label="Google Home Page" accesskey="G" tooltiptext="Navigate to Google" oncommand="TutTB_LoadURL('http://www.google.com/')" /> <menuseparator /> <menuitem label="Born Geek Website" accesskey="B" tooltiptext="Navigate to Born Geek" oncommand="TutTB_LoadURL('http://www.borngeek.com/')" /> </menupopup> </toolbarbutton> </toolbaritem> <toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem> <splitter id="TutTB-ResizeSplitter" state="open" collapse="none" resizebefore="closest" resizeafter="farthest" tooltiptext="Resize the Search Box"> <vbox id="TutTB-ResizeBar" /> </splitter> <toolbaritem flex="0"> <toolbarbutton id="TutTB-Combined-Button" label="Search" type="menu-button" tooltiptext="Combined Search" oncommand="TutTB_Search(event, 'web')"> <menupopup> <menuitem id="TutTB-Combined-Web" label="Web Search" class="menuitem-iconic" tooltiptext="Search the Web" oncommand="TutTB_Search(event, 'web'); event.preventBubble();" /> <menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" /> </menupopup> </toolbarbutton> <toolbarseparator /> <toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" label="Web Search" oncommand="TutTB_Search(event, 'web')" /> </toolbaritem> <toolbarspring /> </toolbar> </toolbox> </overlay>
ÃÂ¥ÃÂÃ¥åÿÃÂèèÃÂèæÃÂæøìèéæïüÃÂçÃÂèÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüçÃÂàFirefox ÃÂ¥ÃÂïæÃÂìéÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæèãÃÂ¥ÃÂÃÂãÃÂÃÂæÃÂÃ¥äøÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂçÃÂúÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæóèÃ¥àÃ¥çÃÂÃÂÃÂ¥ÃÂýãÃÂÃÂ
çììÃ¥àÃÂçëàïüÃÂäøûçèÃÂÃ¥üà(Scripting the Toolbar)
ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂÃ¥øøæÃÂïçÃÂè JavaScript ÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂïüÃÂéÃÂÃÂæÃÂïäøÃÂçèîçðáÃÂ¥ÃÂîæÃÂÃÂÃÂ¥ÃÂøçÃÂÃÂçèÃÂÃ¥üÃÂèêÃÂèèÃÂãÃÂÃÂäýàÃ¥ðÃÂæÃÂÃÂçÃÂüçÃÂþïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂçèÃÂÃ¥üÃÂçâüæÃÂïéÃÂÃÂÃ¥øøçðáÃÂ¥ÃÂîçÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃ¥äçéÃÂÃÂäýÿçÃÂèæÃÂÃÂäûöçÃÂéäûöæèáÃÂ¥ÃÂÃÂ(DOM)ïüÃÂéÃÂÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂçÃÂÃÂÃÂ¥ÃÂîçÃÂèçÃÂÃÂÃ¥àÃÂçôàãÃÂÃÂ
ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂÃÂ¥ÃÂÃÂïüÃÂäýàèæÃÂÃ¥àÃÂçÃÂÃ¥éÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéûÃÂãÃÂÃÂid Ã¥ñìæÃÂçÃ¥ÿàéàÃÂæÃÂïæÃÂôÃÂ¥ÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂèÃÂ¥ÃÂïäøÃÂçÃÂÃÂïüÃÂèÃÂàJavaScript çÃÂÃÂèîÃÂæÃÂøÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂäùÃÂæÃÂïãÃÂÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèèæÃÂèüÃÂäøÃÂçÃÂÃÂJavaScript æÃÂïÃ¥àèÃÂ¥ÃÂÃÂæÃÂççÃÂÃÂïüÃÂÃÂ¥ÃÂàæÃÂäæÃÂÃÂæÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃÂ¥ÃÂöãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂäýÿçÃÂèè÷àXUL Ã¥àÃÂçôàäøÃÂæèãçÃÂÃÂæÃÂÃÂÃ¥÷çïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂèîÃÂæÃÂøÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçèñïüÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂúÃÂ¥ÃÂÃÂèõ÷Ã¥çÃÂÃÂ¥ÃÂÃÂçèñãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè TutTB_ çÃÂöäýÃÂèõ÷Ã¥çÃÂÃÂ¥ÃÂÃÂçèñïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂæÃÂï TutTB_Search()ãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëàJavaScript æêÃÂæáÃÂãÃÂÃÂÃÂ¥ÃÂè content çÃÂîéÃÂÃÂäøÃÂïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂàtuttoolbar.js çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂçÃÂîéÃÂÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome.manifest +- chrome/ +- content/ +- tuttoolbar.xul +- tuttoolbar.js +- skin/ +- combined.png +- gripper.png +- images.png +- main.png +- web.png +- tuttoolbar.css
ÃÂ¥ÃÂèÃ¥ûúçëÃÂäûûäýÃÂçèÃÂÃ¥üÃÂçâüÃÂ¥ÃÂÃÂïüÃÂÃ¥àÃÂÃÂ¥ÃÂÃÂèèô XUL æêÃÂæáÃÂèéòÃ¥æÃÂäýÃÂäýÿçÃÂè JavaScript æêÃÂæáÃÂãÃÂÃÂ
éÃÂãçõàXUL èÃÂàJavaScript (Tying XUL to JavaScript)
æÃÂÃÂÃÂ¥ÃÂÃÂçÃÂàXUL æêÃÂæáàtuttoolbar.xul éÃÂÃÂèæÃÂèâëÃÂ¥ÃÂÃÂçÃÂÃ¥çÃÂøÃ¥ðÃÂæÃÂÃÂçÃÂàJavaScript æêÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèäøÃÂéÃÂâçÃÂÃÂæÃÂÃÂèÿðïüÃÂ
<script type="application/x-javascript" src="chrome://tuttoolbar/content/tuttoolbar.js" />
éÃÂÃÂÃ¥ÿàéàÃÂæÃÂþçýîÃÂ¥ÃÂè overlay Ã¥àÃÂçôàäùÃÂäøÃÂãÃÂÃÂtype Ã¥ñìæÃÂçæÃÂïæÃÂÃÂÃ¥îÃÂäýÿçÃÂè JavaScriptïüÃÂsrc Ã¥ñìæÃÂçæÃÂïæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàJavaScript æêÃÂãÃÂÃÂÃ¥àçÃ¥îùÃ¥æÃÂäøÃÂ[View XUL Overlay Revision 7]ïüÃÂ
<?xml version="1.0"?> <?xml-stylesheet href="chrome://tuttoolbar/skin/tuttoolbar.css" type="text/css"?> <overlay id="TutTB-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/x-javascript" src="chrome://tuttoolbar/content/tuttoolbar.js" /> <toolbox id="navigator-toolbox"> <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" class="chromeclass-toolbar" context="toolbar-context-menu" hidden="false" persist="hidden"> <toolbaritem flex="0"> <toolbarbutton id="TutTB-MainMenu" type="menu" tooltiptext="Tutorial Toolbar Main Menu"> <menupopup> <menuitem label="Google Home Page" accesskey="G" tooltiptext="Navigate to Google" oncommand="TutTB_LoadURL('http://www.google.com/')" /> <menuseparator /> <menuitem label="Born Geek Website" accesskey="B" tooltiptext="Navigate to Born Geek" oncommand="TutTB_LoadURL('http://www.borngeek.com/')" /> </menupopup> </toolbarbutton> </toolbaritem> <toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem> <splitter id="TutTB-ResizeSplitter" state="open" collapse="none" resizebefore="closest" resizeafter="farthest" tooltiptext="Resize the Search Box"> <vbox id="TutTB-ResizeBar" /> </splitter> <toolbaritem flex="0"> <toolbarbutton id="TutTB-Combined-Button" label="Search" type="menu-button" tooltiptext="Combined Search" oncommand="TutTB_Search(event, 'web')"> <menupopup> <menuitem id="TutTB-Combined-Web" label="Web Search" class="menuitem-iconic" tooltiptext="Search the Web" oncommand="TutTB_Search(event, 'web'); event.preventBubble();" /> <menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" /> </menupopup> </toolbarbutton> <toolbarseparator /> <toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" label="Web Search" oncommand="TutTB_Search(event, 'web')" /> </toolbaritem> <toolbarspring /> </toolbar> </toolbox> </overlay>
çÃÂúæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàäøÃÂÃÂ¥ÃÂÃÂèÃÂý (Adding Functionality to the Buttons)
éÃÂÃÂèèÃÂÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂúÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂÃÂäþÃÂçÃÂàoncommand Ã¥ñìæÃÂçÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçæÃÂïæÃÂÃÂÃ¥îÃÂçèÃÂÃ¥üÃÂçâüÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂäúÃÂäûöãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäùÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂè onclick äûãæÃÂÿ oncommandïüÃÂäýÃÂæÃÂï onclick Ã¥ðÃÂéÃÂõçÃÂäçÃÂáæÃÂÃÂïüÃÂèÃÂàoncommand ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂõçÃÂäèÃÂÃÂæûÃÂéüàçÃÂÃÂÃÂ¥ÃÂÃÂäýÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéáçäøÃÂäøÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂïüÃÂ
oncommand="TutTB_Search(event, 'web')"
éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂüÃÂ¥ÃÂë TutTB_Search() ÃÂ¥ÃÂýÃ¥üÃÂïüÃÂÃ¥àöäøÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëÃ¥àéÃÂ¥ÃÂÃÂÃÂ¥ÃÂüïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëçÃÂÃÂäúÃÂäûö(event)ïüÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòéàÃÂ(web)ãÃÂÃÂ
çèÃÂÃ¥üÃÂçâüÃ¥æÃÂäøÃÂ[View JavaScript Revision 1]ïüÃÂ
//////////////////////////////////////////////////////////////////////////////// // TutTB_Search() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂevent ÃÂ¥ÃÂÃÂæÃÂøæÃÂÃÂèçøçÃÂüÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëïüÃÂtype ÃÂ¥ÃÂÃÂæÃÂø // çÃÂúæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_Search(event, type) { // Ã¥ðÃÂèæÃÂçÃÂÃÂèæýçÃÂÃÂçöòÃÂ¥ÃÂàvar URL = ""; // èþèÃÂ¥ÃÂÃ¥æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïÃÂ¥ÃÂæçÃÂúçéúÃÂ¥ÃÂü var isEmpty = false; // èÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýà( <menulist> Ã¥àÃÂçôà) var searchTermsBox = document.getElementById("TutTB-SearchTerms"); // Ã¥þÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂÃÂäøòïüÃÂæÃÂôçÃÂÃÂÃ¥ÿàèæÃÂçÃÂÃÂçéúçÃÂý // ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçÃÂàTutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂéÃÂÃÂäýÃÂçÃÂÃÂçôðçïàvar searchTerms = TutTB_TrimString(searchTermsBox.value); if(searchTerms.length == 0) // Is the search terms box empty? isEmpty = true; // If so, set the isEmpty flag to true else // If not, convert the terms to a URL-safe string searchTerms = TutTB_ConvertTermsToURI(searchTerms); // éÃÂøæÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂà// Ã¥æÃÂæÃÂÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥üÃÂÃ¥ðÃÂäýÿçÃÂèèÃÂàÃÂ¥ÃÂð Google çöòéàÃÂäøÃÂéÃÂéçÃÂöçÃÂÃÂÃÂ¥ÃÂðæÃÂùãÃÂà// ÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃ¥ðÃÂèüøÃ¥àÃ¥çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂàswitch(type) { // Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂàcase "image": if(isEmpty) { URL = "http://images.google.com/"; } else { URL = "http://images.google.com/images?q=" + searchTerms; } break; // Ã¥ûúçëÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂàcase "web": default: if(isEmpty) { URL = "http://www.google.com/"; } else { URL = "http://www.google.com/search?q=" + searchTerms; } break; } // äýÿçÃÂè TutTB_LoadURL ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýèæÃÂçêÃÂäøÃÂèüÃÂÃ¥àÃ¥çöòÃÂ¥ÃÂàTutTB_LoadURL(URL); } //////////////////////////////////////////////////////////////////////////////// // TutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂäÿîÃÂ¥ÃÂêÃÂ¥ÃÂÃÂäøòçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçéúçÃÂýéÃÂèäûýïüÃÂçÃÂöÃ¥þÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂçéúçÃÂýéÃÂèäûýèýÃÂæÃÂÃÂæÃÂà// ÃÂ¥ÃÂîäøÃÂÃÂ¥ÃÂÃÂçéúçÃÂýïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂäÿîæÃÂùÃ¥þÃÂÃÂ¥ÃÂÃÂäøòãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_TrimString(string) { // Ã¥æÃÂæÃÂÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂÃÂ¥ÃÂÃÂäøòçÃÂáæÃÂÃÂïüÃÂæÃÂÃÂæÃÂïæòÃÂæÃÂÃÂæÃÂñèÃ¥ÿïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçéúÃÂ¥ÃÂü if (!string) return ""; string = string.replace(/^\s+/, ''); // Remove leading whitespace string = string.replace(/\s+$/, ''); // Remove trailing whitespace // Ã¥ðÃÂæÃÂÃÂæÃÂÃÂçéúçÃÂýéÃÂèäûýçÃÂèÃÂ¥ÃÂîäøÃÂçéúçÃÂýäûãæÃÂÿ string = string.replace(/\s+/g, ' '); return string; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂæÃÂùèîÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂü } //////////////////////////////////////////////////////////////////////////////// // TutTB_ConvertTermsToURI() ÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_ConvertTermsToURI(terms) { // Ã¥ûúçëÃÂéÃÂãÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþæïÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøò var termArray = new Array(); // çÃÂèçéúçÃÂýÃÂ¥ÃÂÃÂÃ¥àÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäøò termArray = terms.split(" "); // çÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂàvar result = ""; // ÃÂ¥ÃÂèÃÂ¥ÃÂÃÂäøòäøÃÂéÃÂÃÂèÿô for(var i=0; i<termArray.length; i++) { // ÃÂ¥ÃÂèçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøòÃ¥þÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂèÃÂ¥ÃÂàèÃÂÃÂ(+)éÃÂÃÂéÃÂàif(i > 0) result += "+"; // äýÿçÃÂè Firefox Ã¥àçÃ¥ûúçÃÂàencodeURIComponent() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂàÃ¥ïàresult += encodeURIComponent(termArray[i]); } return result; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçõÃÂæÃÂà} //////////////////////////////////////////////////////////////////////////////// // TutTB_LoadURL() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäøÃÂèüÃÂÃ¥àÃ¥çÃÂùÃ¥îÃÂçÃÂÃÂçöòÃÂ¥ÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_LoadURL(url) { // ÃÂ¥ÃÂèçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂçöòÃÂ¥ÃÂàwindow._content.document.location = url; // Make sure that we get the focus window.content.focus(); }
éÃÂÃÂÃÂ¥ÃÂÃÂäýàçÃÂàFirefox éÃÂÃÂçÃÂüçÃÂÃÂæÃÂìïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöèüøÃ¥àÃ¥æÃÂÃÂÃ¥ðÃÂçÃÂÃÂÃÂ¥ÃÂüïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂäøÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂçèÃÂÃ¥üÃÂçâüæÃÂÃÂèéòæÃÂÃÂÃÂ¥ÃÂ÷èáÃÂïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþæÃÂÃÂÃ¥ðÃÂçõÃÂæÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüçÃÂÃÂæÃÂìçâúÃ¥ïææÃÂïçÃÂøçÃÂöäþÿÃÂ¥ÃÂéçÃÂÃÂÃÂ¥ÃÂçïüÃÂ
æÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîçÃÂÃÂæóèæÃÂÃÂäúÃÂéàà(A Special Note About Button-Menu Buttons)
ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂòÃ¥àÃ¥äøÃÂäøÃÂÃ¥üõçëàçïÃÂäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂäøÃÂéûÃÂéÃÂÃÂæÃÂüæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂèæÃÂæóèæÃÂÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæÃÂóäøÃÂäøÃÂïüÃÂéÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂÃÂäþÃÂÃÂ¥ÃÂïäûÃ¥éûÃÂæÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂèÃÂÃÂÃ¥ýÃÂÃÂ¥ÃÂúÃ¥üÃÂéÃÂøÃÂ¥ÃÂî(äøûèæÃÂçïÃÂäþÃÂçÃÂúÃ¥þÃÂÃÂ¥ÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçÃÂÃÂèæý)ãÃÂÃÂäùÃÂæÃÂóäøÃÂäøÃÂïüÃÂtoolbarbutton äûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂë oncommand çÃÂàmenuitem Ã¥àÃÂçôàãÃÂÃÂçÃÂöÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂäøÃÂéÃÂèÃÂ¥ÃÂÃÂèâëÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂtoolbarbutton Ã¥àÃÂçôàçÃÂàoncommand çèÃÂÃ¥üÃÂçâüÃ¥æÃÂäýàæÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂèâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂäýÃÂæÃÂïïüÃÂçÃÂöäýÿçÃÂèèÃÂàÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂmenuitem Ã¥àÃÂçôàçÃÂÃÂÃ¥àöäøÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂïüÃÂæÃÂÃÂçÃÂüçÃÂÃÂäûÃÂéúüäúÃÂïüÃÂ
äøÃÂÃÂ¥ÃÂêæÃÂï menuitem Ã¥àÃÂçôàçÃÂàoncommand äúÃÂäûöÃÂ¥ÃÂ÷èáÃÂïüÃÂtoolbarbutton Ã¥àÃÂçôàçÃÂÃÂäúÃÂäûöäùÃÂèâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂæÃÂÃÂäûÃ¥åàéÃÂ¥ÃÂÃÂäúÃÂäûöæÃÂïÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂçîáäýàÃÂ¥ÃÂêæÃÂïæÃÂóèæÃÂÃ¥àöäøÃÂäøÃÂäûöèâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂÃÂ¥ÃÂàçÃÂú toolbarbutton äúÃÂäûöæÃÂïæÃÂÃÂÃ¥þÃÂçÃÂüçÃÂÃÂçÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥åïæéÃÂÃÂÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂæÃÂï toolbarbutton äúÃÂäûöãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃ¥èéñèêêïüÃÂmenuitem äúÃÂäûöæòÃÂæÃÂÃÂæéÃÂæÃÂÃÂÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂéÃÂãæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂæÃÂÃÂæèãèçãæñúéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂÃÂ¥ÃÂâïüÃÂäúÃÂÃ¥ïæäøÃÂïüÃÂæÃÂïæÃÂÃÂèþææóÃÂçÃÂÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂàmenuitem Ã¥àÃÂçôàïüÃÂ
<menuitem id="TutTB-Combined-Image" label="Image Search" class="menuitem-iconic" tooltiptext="Search Images" oncommand="TutTB_Search(event, 'image'); event.preventBubble();" />
èÃÂÃÂçÃÂñäýÿçÃÂè DOM ÃÂ¥ÃÂýÃ¥üàpreventBubble()ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÿÃ¥ààoncommand èâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂçÃÂúäúÃÂéÃÂÿÃ¥àÃÂÃ¥äÃÂéÃÂ÷Ã¥äâÃ¥äÃÂïüÃÂèèÃÂäýÃÂäøÃÂäûöäúÃÂïüÃÂçÃÂöäýàÃ¥ûúçëÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂïüÃÂèèÃÂÃ¥þÃÂÃÂ¥ÃÂè menuitem Ã¥àÃÂçôàçÃÂàoncommand Ã¥ñìæÃÂçÃÂ¥ÃÂàÃ¥àÃÂ¥ event.preventBubble()ãÃÂÃÂ
çÃÂúæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ÃÂ¥ÃÂÃÂèÃÂý (Adding Functionality to the Search Box)
çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂèîÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèïüÃÂæÃÂÃ¥äøÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂÃ¥ùëæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃ¥äøÃÂäúÃÂÃÂ¥ÃÂÃÂèÃÂýãÃÂÃÂèîÃÂäýÿçÃÂèèÃÂàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèèüøÃ¥àÃÂ¥ÃÂ¥ÃÂÃÂäøòÃ¥þÃÂæÃÂÃÂäøÃÂãÃÂÃÂEnterãÃÂÃÂäûÃÂ¥ÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂèæÃÂæÃÂÃÂéúüÃÂ¥ÃÂÃÂÃÂ¥ÃÂâïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂèæÃÂäýÿçÃÂèçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂïüÃÂ
<toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem>
éÃÂÃÂæìáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè onkeypress äûãæÃÂÿ oncommandãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂäûöæÃÂÃÂÃÂ¥ÃÂèäýÿçÃÂèèÃÂàÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäøÃÂæÃÂÃÂéÃÂõæÃÂÃÂèçøçÃÂüãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂøçÃÂöçðáÃÂ¥ÃÂîçÃÂàTutTB_KeyHandler()ÃÂ¥ÃÂýÃ¥üÃÂïüÃÂ
function TutTB_KeyHandler(event) { if(event.keyCode == event.DOM_VK_RETURN) TutTB_Search(event, 'web'); }
éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂêäøÃÂéÃÂÃÂæÃÂïèæÃÂæêâæÃÂÃ¥ãÃÂÃÂEnterãÃÂÃÂæÃÂïÃÂ¥ÃÂæèâëæÃÂÃÂäøÃÂãÃÂÃÂÃ¥æÃÂæÃÂÃÂæÃÂïïüÃÂTutTB_Search()æÃÂÃÂèâëÃÂ¥ÃÂüÃÂ¥ÃÂëãÃÂÃÂÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂäøÃÂÃÂ¥ÃÂÃÂäûûäýÃÂäúÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂàÃ¥àÃ¥æÃÂäÃÂ¥ÃÂýÃ¥üÃÂçÃÂàJavaScript æêÃÂæáÃÂ[View JavaScript Revision 2]ïüÃÂ
//////////////////////////////////////////////////////////////////////////////// // TutTB_Search() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂevent ÃÂ¥ÃÂÃÂæÃÂøæÃÂÃÂèçøçÃÂüÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëïüÃÂtype ÃÂ¥ÃÂÃÂæÃÂø // çÃÂúæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_Search(event, type) { // Ã¥ðÃÂèæÃÂçÃÂÃÂèæýçÃÂÃÂçöòÃÂ¥ÃÂàvar URL = ""; // èþèÃÂ¥ÃÂÃ¥æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïÃÂ¥ÃÂæçÃÂúçéúÃÂ¥ÃÂü var isEmpty = false; // èÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýà( <menulist> Ã¥àÃÂçôà) var searchTermsBox = document.getElementById("TutTB-SearchTerms"); // Ã¥þÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂÃÂäøòïüÃÂæÃÂôçÃÂÃÂÃ¥ÿàèæÃÂçÃÂÃÂçéúçÃÂý // ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçÃÂàTutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂéÃÂÃÂäýÃÂçÃÂÃÂçôðçïàvar searchTerms = TutTB_TrimString(searchTermsBox.value); if(searchTerms.length == 0) // æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂÃÂ¥ÃÂÃÂïüàisEmpty = true; // æÃÂïïüÃÂèèÃÂÃ¥îàisEmpty çÃÂú true else // äøÃÂïüÃÂèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂàsearchTerms = TutTB_ConvertTermsToURI(searchTerms); // éÃÂøæÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂà// Ã¥æÃÂæÃÂÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥üÃÂÃ¥ðÃÂäýÿçÃÂèèÃÂàÃÂ¥ÃÂð Google çöòéàÃÂäøÃÂéÃÂéçÃÂöçÃÂÃÂÃÂ¥ÃÂðæÃÂùãÃÂà// ÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃ¥ðÃÂèüøÃ¥àÃ¥çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂàswitch(type) { // Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂàcase "image": if(isEmpty) { URL = "http://images.google.com/"; } else { URL = "http://images.google.com/images?q=" + searchTerms; } break; // Ã¥ûúçëÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂàcase "web": default: if(isEmpty) { URL = "http://www.google.com/"; } else { URL = "http://www.google.com/search?q=" + searchTerms; } break; } // äýÿçÃÂè TutTB_LoadURL ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýèæÃÂçêÃÂäøÃÂèüÃÂÃ¥àÃ¥çöòÃÂ¥ÃÂàTutTB_LoadURL(URL); } //////////////////////////////////////////////////////////////////////////////// // TutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂäÿîÃÂ¥ÃÂêÃÂ¥ÃÂÃÂäøòçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçéúçÃÂýéÃÂèäûýïüÃÂçÃÂöÃ¥þÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂçéúçÃÂýéÃÂèäûýèýÃÂæÃÂÃÂæÃÂà// ÃÂ¥ÃÂîäøÃÂÃÂ¥ÃÂÃÂçéúçÃÂýïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂäÿîæÃÂùÃ¥þÃÂÃÂ¥ÃÂÃÂäøòãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_TrimString(string) { // Ã¥æÃÂæÃÂÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂÃÂ¥ÃÂÃÂäøòçÃÂáæÃÂÃÂïüÃÂæÃÂÃÂæÃÂïæòÃÂæÃÂÃÂæÃÂñèÃ¥ÿïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçéúÃÂ¥ÃÂü if (!string) return ""; string = string.replace(/^\s+/, ''); // Remove leading whitespace string = string.replace(/\s+$/, ''); // Remove trailing whitespace // Ã¥ðÃÂæÃÂÃÂæÃÂÃÂçéúçÃÂýéÃÂèäûýçÃÂèÃÂ¥ÃÂîäøÃÂçéúçÃÂýäûãæÃÂÿ string = string.replace(/\s+/g, ' '); return string; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂæÃÂùèîÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂü } //////////////////////////////////////////////////////////////////////////////// // TutTB_ConvertTermsToURI() ÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_ConvertTermsToURI(terms) { // Ã¥ûúçëÃÂéÃÂãÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþæïÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøò var termArray = new Array(); // çÃÂèçéúçÃÂýÃÂ¥ÃÂÃÂÃ¥àÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäøò termArray = terms.split(" "); // çÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂàvar result = ""; // ÃÂ¥ÃÂèÃÂ¥ÃÂÃÂäøòäøÃÂéÃÂÃÂèÿô for(var i=0; i<termArray.length; i++) { // ÃÂ¥ÃÂèçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøòÃ¥þÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂèÃÂ¥ÃÂàèÃÂÃÂ(+)éÃÂÃÂéÃÂàif(i > 0) result += "+"; // äýÿçÃÂè Firefox Ã¥àçÃ¥ûúçÃÂàencodeURIComponent() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂàÃ¥ïàresult += encodeURIComponent(termArray[i]); } return result; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçõÃÂæÃÂà} //////////////////////////////////////////////////////////////////////////////// // TutTB_LoadURL() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäøÃÂèüÃÂÃ¥àÃ¥çÃÂùÃ¥îÃÂçÃÂÃÂçöòÃÂ¥ÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_LoadURL(url) { // ÃÂ¥ÃÂèçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂçöòÃÂ¥ÃÂàwindow._content.document.location = url; // Make sure that we get the focus window.content.focus(); } //////////////////////////////////////////////////////////////////////////////// // TutTB_KeyHandler() æêâæÃÂÃ¥ãÃÂÃÂEnterãÃÂÃÂæÃÂïÃÂ¥ÃÂæèâëèüøÃ¥àÃ¥ãÃÂÃÂæÃÂïçÃÂÃÂèéñïüÃÂÃ¥ðñÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðà//////////////////////////////////////////////////////////////////////////////// function TutTB_KeyHandler(event) { // [ENTER]èâëæÃÂÃÂäøÃÂäúÃÂÃÂ¥ÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂæÃÂïïüÃÂÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðàif(event.keyCode == event.DOM_VK_RETURN) TutTB_Search(event, 'web'); }
ÃÂ¥ÃÂèäøÃÂæìáïüÃÂÃÂ¥ÃÂ÷èáÃÂäýàçÃÂàFirefox éÃÂÃÂçÃÂüçÃÂÃÂæÃÂìïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂèüøÃ¥àÃ¥æÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂäøÃÂãÃÂÃÂEnterãÃÂÃÂãÃÂÃÂÃ¥ðñÃÂ¥ÃÂÃÂæÃÂïæÃÂÃÂäøÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂäøÃÂæèãïüÃÂæÃÂÃÂÃ¥ðÃÂçõÃÂæÃÂÃÂæÃÂÃÂèéòæÃÂÃÂÃÂ¥ÃÂúçÃÂþãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥÷òçöÃÂæÃÂÃÂäúÃÂçÃÂÃÂÃÂ¥ÃÂýïüÃÂ
ÃÂ¥ÃÂÃÂæàÃÂçýîÃ¥àÃ¥éÃÂøÃÂ¥ÃÂî (Dynamically Populating a Menu)
ÃÂ¥ÃÂÃÂæàÃÂçÃÂÃÂÃ¥ðÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîæÃÂþçýîÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîèãáæÃÂïÃ¥þÃÂæÃÂÃÂçÃÂèçÃÂÃÂïüÃÂéÃÂÃÂÃ¥åýéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùèÃÂòæÃÂïÃ¥þÃÂÃ¥îùæÃÂÃÂÃ¥îÃÂæÃÂÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîÃÂ¥ÃÂÃÂæàÃÂçÃÂÃÂÃÂ¥ÃÂàÃ¥àÃ¥äøÃÂäúÃÂéààçÃÂîãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂçÃÂèäþÃÂÃ¥ûúçëÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂèäûýïüÃÂ
<toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> <menulist id="TutTB-SearchTerms" editable="true" flex="1" minwidth="100" width="250" onkeypress="TutTB_KeyHandler(event);"> <menupopup id="TutTB-SearchTermsMenu" onpopupshowing="TutTB_Populate()" /> </menulist> </toolbaritem>
æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃÂ¥ÃÂè menupopup Ã¥àÃÂçôàçÃÂàonpopupshowing Ã¥ñìæÃÂçãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îàTutTB_Populate()ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèæïÃÂæìáãÃÂÃÂÃ¥ýÃÂÃÂ¥ÃÂúÃ¥üÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂÃÂ¥ÃÂóÃ¥ðÃÂéáïçäúæÃÂÃÂèâëÃÂ¥ÃÂ÷èáÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂæÃÂÃÂÃ¥ûúçëÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâü[View TutTB_Populate() Code]ïüÃÂ
//////////////////////////////////////////////////////////////////////////////// // TutTB_Populate() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæìÃÂäýÃÂçÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîæÃÂþçýîÃÂ¥ÃÂÃÂæàÃÂçÃÂâçÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîãÃÂà// éÃÂÃÂçÃÂöéÃÂÃÂäøÃÂæÃÂïéÃÂÃÂÃ¥øøÃ¥ïæçÃÂèçÃÂÃÂïüÃÂäýÃÂæÃÂïèÃÂÃÂçÃÂñéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂøÃÂ¥ÃÂîçýîÃ¥àÃ¥çÃÂÃÂéÃÂÃÂäýÃÂæÃÂùÃ¥üÃÂãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_Populate() { // ÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîÃ¥àÃÂçôàvar menu = document.getElementById("TutTB-SearchTermsMenu"); // ççûéÃÂäÃÂ¥ÃÂèÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîçÃÂîÃÂ¥ÃÂÃÂçÃÂÃÂéààçÃÂî for(var i=menu.childNodes.length - 1; i >= 0; i--) { menu.removeChild(menu.childNodes.item(i)); } // æÃÂÃÂÃ¥îÃÂèæÃÂÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂéààçÃÂîæÃÂøéÃÂàvar numItemsToAdd = 10; for(var i=0; i<numItemsToAdd; i++) { // Ã¥ûúçëÃÂèæÃÂÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéààçÃÂî var tempItem = document.createElement("menuitem"); // èèÃÂÃ¥îÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéààçÃÂîçÃÂÃÂæèÃÂçñä tempItem.setAttribute("label", "Dynamic Item Number " + (i+1)); // ÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂðÃ¥âÃÂéààçÃÂî menu.appendChild(tempItem); } }
éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçïÃÂäþÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂýäûäæïÃÂÃÂ¥ÃÂàmenuitem Ã¥àÃÂçôàÃÂ¥ÃÂûÃÂ¥ÃÂ÷èáÃÂéÃÂøæÃÂÃÂçÃÂÃÂæÃÂÃÂäûäãÃÂÃÂçÃÂúäúÃÂèîÃÂæïÃÂÃÂ¥ÃÂàmenuitem çÃÂÃ¥éÃÂÃÂæÃÂÃÂèéòÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂæÃÂÃÂäûäïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂàÃÂ¥ÃÂêèæÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ setAttribute()ÃÂ¥ÃÂýÃ¥üÃÂäþÃÂèÃÂÃÂçÃÂÃÂäúÃÂäûöÃÂ¥ÃÂÃÂÃÂ¥ÃÂ÷èáÃÂçèÃÂÃ¥üÃÂçâüãÃÂÃÂéÃÂÃÂæÃÂïèÃÂÃÂçÃÂàoncommand äúÃÂäûöçÃÂÃÂçïÃÂäþÃÂïüÃÂ
tempItem.setAttribute("oncommand", "TutTB_SomeFunction()");
ÃÂ¥ÃÂàÃ¥àÃÂ¥ TutTB_Populate()ÃÂ¥ÃÂýÃ¥üÃÂÃ¥þÃÂçÃÂàJavaScript æêÃÂæáÃÂ[View JavaScript Revision 3]ïüÃÂ
//////////////////////////////////////////////////////////////////////////////// // TutTB_Search() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂevent ÃÂ¥ÃÂÃÂæÃÂøæÃÂÃÂèçøçÃÂüÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëïüÃÂtype ÃÂ¥ÃÂÃÂæÃÂø // çÃÂúæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_Search(event, type) { // Ã¥ðÃÂèæÃÂçÃÂÃÂèæýçÃÂÃÂçöòÃÂ¥ÃÂàvar URL = ""; // èþèÃÂ¥ÃÂÃ¥æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïÃÂ¥ÃÂæçÃÂúçéúÃÂ¥ÃÂü var isEmpty = false; // èÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýà( <menulist> Ã¥àÃÂçôà) var searchTermsBox = document.getElementById("TutTB-SearchTerms"); // Ã¥þÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂÃÂäøòïüÃÂæÃÂôçÃÂÃÂÃ¥ÿàèæÃÂçÃÂÃÂçéúçÃÂý // ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçÃÂàTutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂéÃÂÃÂäýÃÂçÃÂÃÂçôðçïàvar searchTerms = TutTB_TrimString(searchTermsBox.value); if(searchTerms.length == 0) // æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂÃÂ¥ÃÂÃÂïüàisEmpty = true; // æÃÂïïüÃÂèèÃÂÃ¥îàisEmpty çÃÂú true else // äøÃÂïüÃÂèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂàsearchTerms = TutTB_ConvertTermsToURI(searchTerms); // éÃÂøæÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂà// Ã¥æÃÂæÃÂÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥üÃÂÃ¥ðÃÂäýÿçÃÂèèÃÂàÃÂ¥ÃÂð Google çöòéàÃÂäøÃÂéÃÂéçÃÂöçÃÂÃÂÃÂ¥ÃÂðæÃÂùãÃÂà// ÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃ¥ðÃÂèüøÃ¥àÃ¥çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂàswitch(type) { // Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂàcase "image": if(isEmpty) { URL = "http://images.google.com/"; } else { URL = "http://images.google.com/images?q=" + searchTerms; } break; // Ã¥ûúçëÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂàcase "web": default: if(isEmpty) { URL = "http://www.google.com/"; } else { URL = "http://www.google.com/search?q=" + searchTerms; } break; } // äýÿçÃÂè TutTB_LoadURL ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýèæÃÂçêÃÂäøÃÂèüÃÂÃ¥àÃ¥çöòÃÂ¥ÃÂàTutTB_LoadURL(URL); } //////////////////////////////////////////////////////////////////////////////// // TutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂäÿîÃÂ¥ÃÂêÃÂ¥ÃÂÃÂäøòçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçéúçÃÂýéÃÂèäûýïüÃÂçÃÂöÃ¥þÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂçéúçÃÂýéÃÂèäûýèýÃÂæÃÂÃÂæÃÂà// ÃÂ¥ÃÂîäøÃÂÃÂ¥ÃÂÃÂçéúçÃÂýïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂäÿîæÃÂùÃ¥þÃÂÃÂ¥ÃÂÃÂäøòãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_TrimString(string) { // Ã¥æÃÂæÃÂÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂÃÂ¥ÃÂÃÂäøòçÃÂáæÃÂÃÂïüÃÂæÃÂÃÂæÃÂïæòÃÂæÃÂÃÂæÃÂñèÃ¥ÿïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçéúÃÂ¥ÃÂü if (!string) return ""; string = string.replace(/^\s+/, ''); // ççûéÃÂäÃÂ¥ÃÂÃÂéÃÂâçéúçÃÂý string = string.replace(/\s+$/, ''); // ççûéÃÂäÃ¥þÃÂéÃÂâçéúçÃÂý // Ã¥ðÃÂæÃÂÃÂæÃÂÃÂçéúçÃÂýéÃÂèäûýçÃÂèÃÂ¥ÃÂîäøÃÂçéúçÃÂýäûãæÃÂÿ string = string.replace(/\s+/g, ' '); return string; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂæÃÂùèîÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂü } //////////////////////////////////////////////////////////////////////////////// // TutTB_ConvertTermsToURI() ÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_ConvertTermsToURI(terms) { // Ã¥ûúçëÃÂéÃÂãÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþæïÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøò var termArray = new Array(); // çÃÂèçéúçÃÂýÃÂ¥ÃÂÃÂÃ¥àÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäøò termArray = terms.split(" "); // çÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþÃ¥îÃÂÃ¥àèçÃÂÃÂçöòÃÂ¥ÃÂàvar result = ""; // ÃÂ¥ÃÂèÃÂ¥ÃÂÃÂäøòäøÃÂéÃÂÃÂèÿô for(var i=0; i<termArray.length; i++) { // ÃÂ¥ÃÂèçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøòÃ¥þÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂèÃÂ¥ÃÂàèÃÂÃÂ(+)éÃÂÃÂéÃÂàif(i > 0) result += "+"; // äýÿçÃÂè Firefox Ã¥àçÃ¥ûúçÃÂàencodeURIComponent() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂàÃ¥ïàresult += encodeURIComponent(termArray[i]); } return result; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçõÃÂæÃÂà} //////////////////////////////////////////////////////////////////////////////// // TutTB_LoadURL() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäøÃÂèüÃÂÃ¥àÃ¥çÃÂùÃ¥îÃÂçÃÂÃÂçöòÃÂ¥ÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_LoadURL(url) { // ÃÂ¥ÃÂèçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂóÃ¥àÃ¥çÃÂÃÂçöòÃÂ¥ÃÂàwindow._content.document.location = url; // Make sure that we get the focus window.content.focus(); } //////////////////////////////////////////////////////////////////////////////// // TutTB_KeyHandler() æêâæÃÂÃ¥ãÃÂÃÂEnterãÃÂÃÂæÃÂïÃÂ¥ÃÂæèâëèüøÃ¥àÃ¥ãÃÂÃÂæÃÂïçÃÂÃÂèéñïüÃÂÃ¥ðñÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðà//////////////////////////////////////////////////////////////////////////////// function TutTB_KeyHandler(event) { // [ENTER]èâëæÃÂÃÂäøÃÂäúÃÂÃÂ¥ÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂæÃÂïïüÃÂÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðàif(event.keyCode == event.DOM_VK_RETURN) TutTB_Search(event, 'web'); } //////////////////////////////////////////////////////////////////////////////// // TutTB_Populate() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæìÃÂäýÃÂçÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîæÃÂþçýîÃÂ¥ÃÂÃÂæàÃÂçÃÂâçÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéààçÃÂîãÃÂà// éÃÂÃÂçÃÂöéÃÂÃÂäøÃÂæÃÂïéÃÂÃÂÃ¥øøÃ¥ïæçÃÂèçÃÂÃÂïüÃÂäýÃÂæÃÂïèÃÂÃÂçÃÂñéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂøÃÂ¥ÃÂîçýîÃ¥àÃ¥çÃÂÃÂéÃÂÃÂäýÃÂæÃÂùÃ¥üÃÂãÃÂà//////////////////////////////////////////////////////////////////////////////// function TutTB_Populate() { // ÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîÃ¥àÃÂçôàvar menu = document.getElementById("TutTB-SearchTermsMenu"); // ççûéÃÂäÃÂ¥ÃÂèÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîçÃÂîÃÂ¥ÃÂÃÂçÃÂÃÂéààçÃÂî for(var i=menu.childNodes.length - 1; i >= 0; i--) { menu.removeChild(menu.childNodes.item(i)); } // æÃÂÃÂÃ¥îÃÂèæÃÂÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂéààçÃÂîæÃÂøéÃÂàvar numItemsToAdd = 10; for(var i=0; i<numItemsToAdd; i++) { // Ã¥ûúçëÃÂèæÃÂÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéààçÃÂî var tempItem = document.createElement("menuitem"); // èèÃÂÃ¥îÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéààçÃÂîçÃÂÃÂæèÃÂçñä tempItem.setAttribute("label", "Dynamic Item Number " + (i+1)); // ÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂðÃ¥âÃÂéààçÃÂî menu.appendChild(tempItem); } }
ÃÂ¥ÃÂÃÂæàÃÂÃÂ¥ÃÂàÃ¥àÃ¥å÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Dynamically Adding Toolbar Buttons)
ÃÂ¥ÃÂàÃ¥àÃÂ¥ÃÂ¥ÃÂÃÂæàÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂÃ¥ðñè÷ÃÂÃÂ¥ÃÂÃÂæàÃÂçýîÃ¥àÃ¥éÃÂøÃÂ¥ÃÂîäøÃÂæèãçðáÃÂ¥ÃÂîïüÃÂèÃÂÃÂäøÃÂéÃÂÃÂéÃÂÃÂÃ¥øøçÃÂøäüüãÃÂÃÂéæÃÂÃ¥àÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëÃÂ¥ÃÂÃÂæàÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂÃ¥îùÃÂ¥ÃÂèãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃ¥àÃÂïüàtoolbaritem Ã¥àÃÂçôàæÃÂïäøÃÂéÃÂïçÃÂÃÂéÃÂøæÃÂÃÂïüÃÂæèÃÂèèÃÂÃ¥æÃÂäøÃÂïüÃÂ
<toolbaritem id="TutTB-DynButtonContainer" />
çÃÂþÃÂ¥ÃÂèïüÃÂÃ¥îùÃÂ¥ÃÂèÃ¥÷òçöÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂéçÃÂèäúÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèÃ¥îÃÂïüÃÂäþÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ÃÂ¥ÃÂÃÂæààtoolbarbutton Ã¥àÃÂçôàïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂäøÃÂäøÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ÃÂ¥ÃÂÃÂæàÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçïÃÂäþÃÂïüÃÂ
function TutTB_AddDynamicButtons() { // ÃÂ¥ÃÂÃÂÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂè XUL æÃÂÃÂèÿðäøÃÂÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂéààçÃÂîãÃÂÃÂÃ¥îùÃÂ¥ÃÂèãÃÂàvar container = document.getElementById("TutTB-DynButtonContainer"); // ççûéÃÂäæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçÃÂÃÂæÃÂÃÂéÃÂàfor(i=container.childNodes.length; i > 0; i--) { container.removeChild(container.childNodes[0]); } // Ã¥âÃÂÃÂ¥ÃÂàäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂæÃÂÃÂéÃÂàfor(var i=0; i<5; i++) { var tempButton = null; tempButton = document.createElement("toolbarbutton"); tempButton.setAttribute("label", "Button " + i); tempButton.setAttribute("tooltiptext", "Button " + i); tempButton.setAttribute("oncommand", "TutTB_SomeFunction()"); container.appendChild(tempButton); } }
éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂÃÂçýîÃ¥àÃÂ¥ÃÂ¥ÃÂÃÂæàÃÂéÃÂøÃÂ¥ÃÂîéÃÂÃÂÃ¥øøçÃÂøäüüãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥îùÃÂ¥ÃÂèäøÃÂççûéÃÂäçÃÂþæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂæÃÂÃÂéÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂàÃ¥àÃ¥æÃÂðçÃÂÃÂãÃÂÃÂ
Optional Programming ExerciseïüÃÂèéæèÃÂÃÂçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂææÃÂÃ¥ÿõäþÃÂÃ¥âÃÂÃÂ¥ÃÂàãÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂéÃÂÃÂ(search word buttons)ãÃÂÃÂÃÂ¥ÃÂðÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂãÃÂÃÂçÃÂöäýÿçÃÂèèÃÂàÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂéÃÂÃÂéÃÂõÃ¥àÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂæàÃÂÃÂ¥ÃÂðÃ¥âÃÂÃÂ¥ÃÂàæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂðÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂÃÂÃ¥àÃÂæÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂæÃÂÃÂçäúïüÃÂ
- äýàéÃÂÃÂèæÃÂÃ¥âÃÂÃÂ¥ÃÂàtoolbaritem Ã¥îùÃÂ¥ÃÂèÃÂ¥ÃÂð XUL æÃÂÃÂèÿðæêÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂ(right before the toolbarspring element is a good choice)ãÃÂÃÂçâúÃ¥îàID æÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂãÃÂÃÂ
- ÃÂ¥ÃÂè menulist Ã¥àÃÂçôàäøÃÂäýÿçÃÂè oninput äúÃÂäûöïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂäûöæÃÂÃÂÃÂ¥ÃÂèäýÿçÃÂèèÃÂàèüøÃ¥àÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèçøçÃÂüãÃÂÃÂ
- äýàÃÂ¥ÃÂüÃÂ¥ÃÂëçÃÂàJavaScript æÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂÃÂäúÃÂïüÃÂ(a)ÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂäøÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂ(b)ççûéÃÂäæÃÂÃÂæÃÂÃÂÃ¥àÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂæÃÂÃÂéÃÂÃÂ(c)äûÃ¥çéúçÃÂýÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂ(d)çÃÂúæïÃÂÃÂ¥ÃÂÃÂçÃÂèçëÃÂçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂ
éÃÂÃÂÃ¥ðñæÃÂïæÃÂÃÂèÃÂÃÂçÃÂàGooglebar Lite çÃÂÃÂæÃÂùÃ¥üÃÂãÃÂÃÂ
éÃÂÃÂéÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Disabling and Enabling Buttons)
(éÃÂÃÂéÃÂèäûýÃÂ¥ÃÂêæÃÂïÃÂ¥ÃÂÃÂèèôäýàæÃÂÃÂéúüçÃÂèïüÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçïÃÂäþÃÂäøæäøÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþ)ãÃÂÃÂ
äýàÃÂ¥ÃÂöçÃÂþÃÂ¥ÃÂïèÃÂýæÃÂÃÂæÃÂóèæÃÂéÃÂÃÂéÃÂÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂGooglebar Lite çÃÂÃÂéëÃÂäúîÃ¥úææèÃÂèèÃÂæÃÂÃÂéÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæòÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂèïüÃÂÃÂ¥ÃÂêèÃÂýÃÂ¥ÃÂ÷èáÃÂæÃÂüæÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂãÃÂÃÂ
äøÃÂéÃÂâçÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂæÃÂïÃ¥æÃÂäýÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥æÃÂçÃÂ¥ÃÂöéÃÂÃÂéÃÂÃÂçÃÂÃÂäøÃÂèÃÂìÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæìáæÃÂÃÂéÃÂÃÂïüÃÂéÃÂÃÂäøÃÂæÃÂïÃ¥ïæçÃÂèçÃÂÃÂçïÃÂäþÃÂïüÃÂÃÂ¥ÃÂêæÃÂïèÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂðçÃÂÃÂãÃÂÃÂæÃÂÃ¥èÃÂÃÂæÃÂïéÃÂøÃÂ¥ÃÂîéààçÃÂîçÃÂÃÂæÃÂÃÂèÿðæèÃÂèèÃÂïüÃÂ
<menuitem label="Toggle Web Search Button" tooltiptext="Toggle Web Search Button" oncommand="TutTB_ToggleWebSearchButton()" />
TutTB_ToggleWebSearchButton()ÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüïüÃÂ
function TutTB_ToggleWebSearchButton() { var button = document.getElementById("TutTB-Web-Button"); var value = button.disabled; if(value == true) button.disabled = false; else button.disabled = true; }
éæÃÂÃ¥àÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂèÃÂÃÂèöãçÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂè ID ÃÂ¥ÃÂüäûÃÂ¥ÃÂ¥ÃÂàgetElementById()ÃÂ¥ÃÂýÃ¥üÃÂãÃÂÃÂÃÂ¥ÃÂêèæÃÂæÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñèÃÂýäýÿçÃÂè disabled Ã¥ñìæÃÂçæÃÂçÃÂ¥ÃÂöèéòæÃÂÃÂéÃÂÃÂçÃÂéäûöçÃÂÃÂçÃÂþæÃÂÃÂçÃÂÃÂæàÃÂ(ÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂÃÂ)ãÃÂÃÂÃ¥æÃÂæÃÂÃÂÃÂ¥ÃÂüçÃÂú trueïüÃÂÃ¥ðñäýÿçÃÂè false ÃÂ¥ÃÂÃÂæöÃÂæÃÂÃÂéÃÂÃÂéÃÂÃÂéÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂäùÃÂäúæçÃÂöãÃÂÃÂFirefox æÃÂÃÂÃ¥ùëæÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂéÃÂÃÂéÃÂÃÂïüÃÂèîÃÂèéòæÃÂÃÂéÃÂÃÂäøÃÂèÃÂýéûÃÂæÃÂÃÂ(note that the button's image may not appeared grayed out: we must rely on skinning for that)ãÃÂÃÂ
ÃÂ¥ÃÂÃÂæàÃÂéáïçäúèÃÂÃÂéÃÂñèÃÂÃÂæÃÂÃÂéÃÂà(Dynamically Showing and Hiding Buttons)
(éÃÂÃÂéÃÂèäûýÃÂ¥ÃÂêæÃÂïÃÂ¥ÃÂÃÂèèôäýàæÃÂÃÂéúüçÃÂèïüÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçïÃÂäþÃÂäøæäøÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþ)ãÃÂÃÂ
Googlebar Lite Ã¥àÃÂèèñäýÿçÃÂèèÃÂàéÃÂøæÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂèÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂæèãÃÂ¥ÃÂÃÂãÃÂÃÂäùÃÂÃ¥ðñæÃÂïèêêïüÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂèÃÂýÃ¥äàÃÂ¥ÃÂÃÂæàÃÂçÃÂÃÂéáïçäúæÃÂÃÂæÃÂïéÃÂñèÃÂÃÂÃÂ¥ÃÂïçÃÂèçÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂÃ¥îÃÂæÃÂÃÂçÃÂàJavaScriptçèÃÂÃ¥üÃÂçâüçÃÂÃÂæîõïüÃÂ
var TB_Web = document.getElementById("TutTB-Web-Button"); TB_Web.setAttribute("hidden", !TutTB_ShowWebButton);
éæÃÂÃ¥àÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèîÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂè getElementById() ÃÂ¥ÃÂýÃ¥üÃÂïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂë setAttribute()ÃÂ¥ÃÂýÃ¥üÃÂäþÃÂæÃÂùèîàhidden Ã¥ñìæÃÂççÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂäýàæÃÂÃÂçÃÂüçÃÂþéÃÂÃÂÃÂ¥ÃÂàhidden ÃÂ¥ÃÂüè÷ÃÂæÃÂÃÂÃÂ¥ÃÂè TutTB_ShowWebButton æÃÂÃÂèèÃÂÃ¥îÃÂçÃÂÃÂçÃÂøÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüæÃÂïÃÂ¥ÃÂÃÂÃ¥øÃÂæÃÂÃÂæèÃÂçñä(boolean flag)ïüÃÂçÃÂèäþÃÂèþèÃÂ¥ÃÂÃ¥äýÿçÃÂèèÃÂàæÃÂïÃÂ¥ÃÂææÃÂóèæÃÂçÃÂÃÂÃÂ¥ÃÂðãÃÂÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂèîÃÂæÃÂøçÃÂÃÂÃÂ¥ÃÂüïüÃÂæÃÂïÃ¥þÃÂäýÿçÃÂèèÃÂàèèÃÂÃ¥îÃÂäøÃÂèîÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂãÃÂÃÂçùüçúÃÂéÃÂñèîÃÂïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥æÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂéûÃÂãÃÂÃÂ
èîÃÂÃÂ¥ÃÂÃÂèÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäýÿçÃÂèèÃÂàèèÃÂÃ¥îà(Reading and Storing User Preferences)
(éÃÂÃÂéÃÂèäûýÃÂ¥ÃÂêæÃÂïÃÂ¥ÃÂÃÂèèôäýàæÃÂÃÂéúüçÃÂèïüÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂçïÃÂäþÃÂäøæäøÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþ)ãÃÂÃÂ
çÃÂúäúÃÂèîÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂçÃÂÃÂèèÃÂÃ¥îÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàFirefox èèÃÂÃ¥îÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäûÃÂéÃÂâ(preferences service interface)ãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥åûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂèîÃÂæÃÂøäþÃÂÃ¥îÃÂæÃÂÃÂïüÃÂ
const TutTB_PrefService = Components.classes["@mozilla.org/preferences-service;1"]. getService(Components.interfaces.nsIPrefService);
äøÃÂæÃÂæÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂäûÃÂéÃÂâïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥çÃÂòÃ¥þÃÂÃÂ¥ÃÂ¥ÃÂäûöèèÃÂÃ¥îÃÂçÃÂÃÂäøÃÂéÃÂèÃÂ¥ÃÂÃÂ(i.e. the location in the preferences "registry" where our extension's settings are kept)ïüÃÂ
const TutTB_Branch = TutTB_PrefService.getBranch("tuttoolbar.");
ÃÂ¥ÃÂÃÂèèÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçïÃÂäþÃÂçÃÂÃÂèèÃÂÃ¥îÃÂèõ÷Ã¥çÃÂæÃÂü tuttoolbar æÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂàæÃÂäïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂäøò getBranch() (Ã¥àçÃ¥ûúçÃÂàFireofx ÃÂ¥ÃÂýÃ¥üÃÂ) ãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂèèÃÂÃ¥îÃÂïüÃÂæÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂïäûÃ¥çÃÂòÃ¥þÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃ¥éÃÂøéààçÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂéÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðãÃÂÃÂéáïçäúçöòéàÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂéÃÂøéààÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂüïüÃÂ
if(TutTB_Branch.prefHasUserValue("show.button.web")) TutTB_ShowWebButton = TutTB_Branch.getBoolPref("show.button.web"); else { TutTB_Branch.setBoolPref("show.button.web", false); TutTB_ShowWebButton = false; }
éæÃÂÃ¥àÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæøìèéæéÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæÃÂïÃÂ¥ÃÂæÃÂ¥ÃÂÃÂÃÂ¥ÃÂèæÃÂüèèÃÂÃ¥îÃÂæèùçÃÂÃÂçõÃÂæçÃÂèãáãÃÂÃÂÃ¥æÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèïüÃÂÃ¥ðñçÃÂè getBoolPref()ÃÂ¥ÃÂýÃ¥üÃÂèîÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂü(ÃÂ¥ÃÂòÃÂ¥ÃÂÃÂæÃÂü TutTB_ShowWebButton èîÃÂæÃÂø)ãÃÂÃÂÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñèèÃÂÃ¥îÃÂçÃÂúéàÃÂèèÃÂÃÂ¥ÃÂü(èèÃÂÃ¥îÃÂçÃÂÃÂæèùèÃÂÃÂÃ¥àèÃÂ¥ÃÂÃÂèîÃÂæÃÂø)ãÃÂÃÂ
ÃÂ¥ÃÂòÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæÃÂïÃ¥þÃÂçðáÃÂ¥ÃÂîçÃÂÃÂÃÂ¥ÃÂçïüÃÂäýàÃÂ¥ÃÂêèæÃÂæÃÂÃÂäþÃÂèèÃÂÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçèñïüÃÂçÃÂöÃ¥þÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüïüÃÂ
TutTB_Branch.setBoolPref("show.button.web", TutTB_ShowWebButton);
ãÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂèÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂãÃÂÃÂçÃÂèäþÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöèèÃÂÃ¥îÃÂæÃÂïÃ¥þÃÂæÃÂùäþÿçÃÂÃÂæÃÂùÃ¥üÃÂãÃÂÃÂÃ¥äçéÃÂèÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂýäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèÃÂýïüÃÂæÃÂÃÂèèñÃ¥äÃÂÃÂ¥ÃÂïäýÿçÃÂèçÃÂÃÂçïÃÂäþÃÂçÃÂÃÂèÃÂÃÂäýàÃÂ¥ÃÂûçàÃÂçéöãÃÂÃÂÃÂ¥ÃÂæÃ¥äÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂàMozillaZine knowledge base çÃÂÃÂæÃÂÃÂçëàãÃÂÃÂ
çììäøÃÂçëàïüÃÂÃ¥ðÃÂèãà(Packaging the Toolbar)
ÃÂ¥ÃÂðçÃÂîÃÂ¥ÃÂÃÂçÃÂúæÃÂâïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂèÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüäþÃÂèÃÂÃÂçÃÂÃÂÃ¥îÃÂèãÃÂçÃÂÃÂéÃÂèäûýãÃÂÃÂäýÃÂæÃÂïäýÿçÃÂèèÃÂàäøæäøÃÂæÃÂÃÂæÃÂóçÃÂèéÃÂÃÂæèãçÃÂÃÂæÃÂùÃ¥üÃÂäþÃÂÃ¥îÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃ¥ðÃÂèãÃÂæêÃÂæáÃÂæÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂèãÃÂæêÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèæÃÂÃ¥ûúçëÃÂÃ¥àéÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂXPI ÃÂ¥ÃÂàJARãÃÂÃÂÃÂ¥ÃÂÃ¥èâëéÃÂÃÂæèãçÃÂÃÂæêÃÂæáÃÂÃÂ¥ÃÂÃÂçèñçõæéèÃÂäúÃÂïüÃÂäûÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂêäøÃÂéÃÂÃÂæÃÂïçÃÂè zip Ã¥ãÃÂçøîæêÃÂæáÃÂæàüÃ¥üÃÂÃÂ¥ÃÂýèãÃÂçÃÂÃÂãÃÂÃÂ
çÃÂþÃÂ¥ÃÂèæÃÂïÃ¥ãÃÂçøîÃ¥÷Ã¥åà÷çÃÂüæÃÂîÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúúÃ¥ûúèÃÂðäýÿçÃÂè WinZip (ÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂæèáÃ¥üÃÂ)ïüÃÂäýÃÂæÃÂïçöòè÷ïäøÃÂäùÃÂæÃÂÃÂäøÃÂÃ¥ðÃÂÃ¥àÃÂèòûçÃÂÃÂÃ¥÷Ã¥åà÷ãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøàïüàæÃÂÃÂæÃÂÃÂäýÿçÃÂè UNIX Ã¥ãÃÂçøîÃ¥÷Ã¥åà÷;ÃÂ¥ÃÂè Windows äøÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂè Cygwin ãÃÂÃÂ
æÃÂôæÃÂð Chrome æøàÃÂ¥ÃÂî (Updating the Chrome Manifest)
çììäøÃÂæÃÂÃ¥åðÃÂèãÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëäúÃÂæÃÂôæÃÂð chrome æøàÃÂ¥ÃÂîãÃÂÃÂæóèæÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂèæÃÂçùüçúÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüïüÃÂäýàèæÃÂæÃÂÃÂÃ¥àéÃÂ¥ÃÂàchrome æøàÃÂ¥ÃÂîïüÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂïÃ¥ðÃÂèãÃÂçÃÂèçÃÂÃÂïüÃÂÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüçÃÂèçÃÂÃÂãÃÂÃÂèÃÂÃÂçÃÂÃÂéÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂæêÃÂæáÃÂæÃÂïÃ¥þÃÂéúûçàéçÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂêéÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂÃ¥÷òÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçÃÂàchrome æøàÃÂ¥ÃÂîÃÂ¥ÃÂÃÂèÃÂÃÂçÃÂÃÂãÃÂÃÂæóèæÃÂÃÂïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂäÿîæÃÂùæøàÃÂ¥ÃÂîÃ¥þÃÂïüÃÂÃ¥ðñäøÃÂèÃÂýçÃÂèÃÂ¥ÃÂèÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüäúÃÂïüÃÂéÃÂäéÃÂÃÂäýàäÿîæÃÂùÃÂ¥ÃÂÃÂäþÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥àÃÂäþÃÂÃÂ¥ÃÂÃÂæÃÂöäøÃÂäøÃÂæøàÃÂ¥ÃÂîçÃÂÃÂÃ¥àçÃ¥îùïüÃÂ
content tuttoolbar chrome/content/ overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul skin tuttoolbar classic/1.0 chrome/skin/
æÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂùéÃÂÃÂèæÃÂäÿîæÃÂùïüÃÂÃ¥àÃÂçÃÂÃÂçÃÂÃÂçììäøÃÂèáÃÂïüÃÂ
content tuttoolbar jar:chrome/tuttoolbar.jar!/content/
æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃ¥äúÃÂÃ¥àéÃÂ¥ÃÂÃÂéààçÃÂîãÃÂÃÂéæÃÂÃ¥àÃÂæÃÂï jar: ïüÃÂæÃÂþçýîÃÂ¥ÃÂèè÷ïÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂÃÂéÃÂâãÃÂÃÂéÃÂÃÂæÃÂÃÂÃ¥îàFirefox Ã¥ÿàéàÃÂÃ¥þàJAR æêÃÂæáÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃ¥àçÃ¥îùãÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ tuttoolbar.jar!/ïüÃÂäûÃÂæÃÂü chrome/ ÃÂ¥ÃÂàcontent/ çÃÂîéÃÂÃÂäøÃÂéÃÂÃÂïüÃÂéÃÂÃÂæÃÂÃÂèÿðäúÃÂÃÂ¥ÃÂêÃÂ¥ÃÂàJAR éÃÂÃÂèæÃÂèâëÃÂ¥ÃÂÃÂÃÂ¥ÃÂúçÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàJAR çÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂèæÃÂè÷ÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂçÃÂøÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðïüÃÂÃ¥ÿàéàÃÂè÷ÃÂæêÃÂÃÂ¥ÃÂÃÂäøÃÂæèãäýÿçÃÂèÃ¥ðÃÂÃ¥ïëÃÂ¥ÃÂÃÂéëÃÂãÃÂÃÂæóèæÃÂÃÂïüÃÂééÃÂÃÂ¥ÃÂÃÂèÃÂÃÂäøÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂïèêäïüÃÂéÃÂÃÂæÃÂïÃ¥ÿàèæÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂäÿîæÃÂùçÃÂÃÂè÷ïÃ¥þÃÂæÃÂï skin ïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂäÿîæÃÂùÃ¥þÃÂçÃÂÃÂÃ¥àçÃ¥îùïüÃÂ
content tuttoolbar jar:chrome/tuttoolbar.jar!/content/ overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul skin tuttoolbar classic/1.0 jar:chrome/tuttoolbar.jar!/skin/
Ã¥ûúçëàJAR æêÃÂæáà(Creating the JAR File)
çììäøÃÂÃÂ¥ÃÂÃÂèæÃÂÃ¥ðÃÂèãÃÂçÃÂÃÂæÃÂï JAR æêÃÂæáÃÂãÃÂÃÂéæÃÂÃ¥àÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂçÃÂàchrome çÃÂîéÃÂÃÂïüÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëäúàXULãÃÂÃÂJavaScriptãÃÂÃÂCSS äûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂæêÃÂæáÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüÃÂ
+- TutToolbar/ +- install.rdf +- chrome.manifest +- chrome/ +- tuttoolbar.jar +- content/ +- tuttoolbar.xul +- tuttoolbar.js +- skin/ +- combined.png +- gripper.png +- images.png +- main.png +- web.png +- tuttoolbar.css
Ã¥ðÃÂèãàJAR æÃÂÃÂæÃÂï XPI æÃÂÃÂïüÃÂæÃÂÃÂÃ¥îùæÃÂÃÂçÃÂïçÃÂÃÂéÃÂïèêäÃ¥ðñæÃÂïéÃÂúæüÃÂäúÃÂçÃÂøéÃÂÃÂçÃÂÃÂæêÃÂæáÃÂãÃÂÃÂÃ¥æÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèãàJAR æêÃÂæáÃÂæÃÂïÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂïüÃÂèãáéÃÂâÃÂ¥ÃÂàÃÂ¥ÃÂëäúÃÂïüÃÂ
+- content/ +- tuttoolbar.xul +- tuttoolbar.js +- skin/ +- combined.png +- gripper.png +- images.png +- main.png +- web.png +- tuttoolbar.css
éÃÂÃÂæÃÂïæÃÂÃÂçÃÂè UNIX Ã¥÷Ã¥åà÷çÃÂÃÂæÃÂùÃ¥üÃÂ(ÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂæèáÃ¥üÃÂ)ïüÃÂ
zip -r tuttoolbar.jar content/* skin/*
(èÃÂïèÃÂàïüÃÂäøÃÂèÃÂì Windows äýÿçÃÂèèÃÂàÃÂ¥ÃÂïäûÃ¥çÃÂôæÃÂÃ¥åðàcontent ÃÂ¥ÃÂàskin çÃÂîéÃÂÃÂäûÃÂ¥ zip æàüÃ¥üÃÂÃ¥ãÃÂçøîæÃÂÃÂÃÂ¥ÃÂïæêÃÂÃÂ¥ÃÂà.jar çÃÂÃÂæêÃÂæáÃÂãÃÂÃÂ)
Ã¥ûúçëàXPI æêÃÂæáÃÂ(Creating the XPI File)
ÃÂ¥ÃÂèÃ¥ûúçëÃÂÃ¥åý JAR æêÃÂæáÃÂäùÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃ¥ûúçëàXPI æêÃÂæáÃÂïüÃÂéÃÂÃÂæÃÂïçÃÂÃÂæÃÂãäýàèæÃÂçõæäýÿçÃÂèèÃÂàçÃÂèçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥îÃÂèãÃÂæêÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃÂ¥ÃÂèæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂäøÃÂÃ¥ûúçëÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüÃÂ
+- TutToolbar/ +- tuttoolbar.xpi +- install.rdf +- chrome.manifest +- chrome/ +- tuttoolbar.jar +- content/ +- tuttoolbar.xul +- tuttoolbar.js +- skin/ +- combined.png +- gripper.png +- images.png +- main.png +- web.png +- tuttoolbar.css
è÷àJAR æêÃÂæáÃÂäøÃÂæèãïüÃÂXPI Ã¥ÿàéàÃÂçöÃÂæÃÂÃÂçÃÂøÃ¥ðÃÂçÃÂÃÂè÷ïÃ¥þÃÂãÃÂÃÂÃÂ¥ÃÂè XPI æêÃÂæáÃÂäøÃÂïüÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëäúÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂîãÃÂÃÂchrome æøàÃÂ¥ÃÂîÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàJAR æêÃÂæáÃÂãÃÂÃÂXPI èãáÃÂ¥ÃÂàÃÂ¥ÃÂëäúÃÂïüÃÂ
+- install.rdf +- chrome.manifest +- chrome/ +- tuttoolbar.jar
äýÿçÃÂè UNIX Ã¥÷Ã¥åà÷çÃÂÃÂæÃÂùÃ¥üÃÂïüÃÂ
zip tuttoolbar.xpi install.rdf chrome.manifest chrome/tuttoolbar.jar
ÃÂ¥ÃÂ¥ÃÂäûöÃ¥îÃÂèãÃÂæøìèéæ (Installing Your Toolbar Extension)
æÃÂÃÂäúàXPI æêÃÂæáÃÂäùÃÂÃ¥þÃÂïüÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂÃ¥îÃÂèãÃÂçÃÂÃÂæÃÂÃ¥ééÃÂãÃÂÃÂÃÂ¥ÃÂèçÃÂüèáèÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂïüÃÂäýàäøÃÂÃ¥îÃÂèæÃÂÃ¥àÃÂçâúÃ¥îÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂïäûÃ¥åîÃÂèãÃÂãÃÂÃÂäøÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèéÃÂÃÂçÃÂüèèÃÂÃ¥îÃÂæêÃÂäþÃÂæøìèéæÃ¥îÃÂèãÃÂïüÃÂÃÂ¥ÃÂÃÂçîáÃÂ¥ÃÂèéÃÂãäûýèèÃÂÃ¥îÃÂæêÃÂÃ¥÷òçöÃÂæÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃ¥îÃÂèãÃÂçÃÂÃÂæÃÂìãÃÂÃÂçÃÂèäýàäøÃÂèÃÂìäýÿçÃÂèçÃÂÃÂïüÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂïüÃÂäþÃÂäøÃÂéÃÂâçÃÂÃÂæÃÂÃ¥ééÃÂäþÃÂæøìèéæÃ¥îÃÂèãÃÂïüÃÂ
- æêÃÂæáà> éÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáà(æÃÂÃÂæÃÂïçÃÂè Ctrl+O) ãÃÂÃÂ
- ÃÂ¥ÃÂèÃ¥ðÃÂèéñæáÃÂäøÃÂïüÃÂæÃÂþÃÂ¥ÃÂðäýàçÃÂàXPI æêÃÂæáÃÂïüÃÂéûÃÂéÃÂøãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂãÃÂÃÂ
Ã¥æÃÂæÃÂÃÂæÃÂãçâúÃÂ¥ÃÂðÃ¥îÃÂæÃÂÃÂÃ¥þÃÂïüÃÂäýàæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðÃ¥îÃÂèãÃÂçÃÂëéÃÂâãÃÂÃÂéÃÂøæÃÂÃÂäýàèæÃÂÃ¥îÃÂèãÃÂÃ¥þÃÂïüÃÂéÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂàFirefoxãÃÂÃÂäùÃÂÃ¥þÃÂïüÃÂäýàæÃÂÃÂèéòæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂäúÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýàÃ¥îÃÂæÃÂÃÂçììäøÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂ
ÃÂ¥ÃÂàéÃÂÃÂÃ¥ðÃÂèãÃÂéÃÂÃÂçèà(Speeding Up the Packaging Process)
æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥þÃÂèîÃÂäúúÃÂ¥ÃÂÃÂçàéçÃÂÃÂïüÃÂçÃÂúäýÃÂäøÃÂçÃÂèæÃÂÃÂèÿðæêÃÂäþÃÂÃ¥îÃÂæÃÂÃÂÃÂ¥ÃÂâïüÃÂÃ¥æÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂæèáÃ¥üÃÂçÃÂàZIP Ã¥÷Ã¥åà÷ïüÃÂäýàÃÂ¥ÃÂïäûÃ¥åðÃÂéÃÂÃÂçèÃÂèÃÂêÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂäýÿçÃÂè DOS æÃÂùæìáæêÃÂÃÂ¥ÃÂàUNIX Ã¥ãÃÂçøîÃ¥÷Ã¥åà÷ãÃÂÃÂ
éæÃÂÃ¥àÃÂÃ¥ûúçëÃÂÃ¥àéÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂïüÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂçÃÂàxpizip.txt ïüÃÂÃÂ¥ÃÂàchrome çÃÂîéÃÂÃÂäøÃÂçÃÂàjarzip.txt ãÃÂàæêÃÂæáÃÂäøÃÂÃÂ¥ÃÂàÃÂ¥ÃÂëäúÃÂèæÃÂÃ¥ðÃÂèãÃÂçÃÂÃÂéààçÃÂîïüà[View xpizip.txt] [View jarzip.txt]
äøÃÂäøÃÂæÃÂÃ¥ïüÃÂÃÂ¥ÃÂèæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂäøÃÂÃ¥ûúçëàDOS æÃÂùæìáæêÃÂ(.bat)ïüÃÂÃ¥àçÃ¥îùÃ¥æÃÂäøÃÂïüÃÂ
zip -r chrome/tuttoolbar.jar -@ < chrome/jarzip.txt zip -r tuttoolbar.xpi -@ < xpizip.txt
Ã¥æÃÂäýàæÃÂÃÂèæÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèÿðæêÃÂçÃÂøçÃÂöçðáÃÂ¥ÃÂîãÃÂÃÂçÃÂöèÃÂÃÂïüÃÂäýàçÃÂÃÂæÃÂÃÂèÿðæêÃÂÃÂ¥ÃÂïèÃÂýæïÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂôèäÃÂéÃÂÃÂãÃÂÃÂæÃÂÃÂçÃÂèäþÃÂÃ¥ûúçëàGooglebar Lite çÃÂÃÂæÃÂÃÂèÿðæêÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂæÃÂôÃ¥äÃÂäúÃÂãÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂïäûÃ¥çÃÂúæÃÂÃÂèÃÂêÃÂ¥ÃÂÃÂæÃÂôæÃÂðæÃÂÃÂæÃÂÃÂçÃÂÃÂçÃÂÃÂæÃÂìäûãèÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæêÃÂæáÃÂçÃÂÃÂÃ¥ðÃÂèãÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèÿðæêÃÂæÃÂïçÃÂè Perl Ã¥îÃÂæÃÂÃÂçÃÂÃÂïüÃÂèÃÂÃÂäøÃÂäýÿçÃÂè 1.0.x çÃÂÃÂÃ¥îÃÂèãÃÂæÃÂùæáÃÂ(èÃÂÃÂéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäúÃÂÃ¥þîçÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂ)ãÃÂÃÂæÃÂÃÂæÃÂÃÂäþÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèÿðæêÃÂçõææÃÂÃÂèÃÂÃÂèöãçÃÂÃÂäúúïüÃÂ[View the Googlebar Lite Build Script]ãÃÂÃÂ
(Ant Support)
Ã¥æÃÂæÃÂÃÂäýàÃ¥ïçéáÃÂäýÿçÃÂè Ant äþÃÂÃ¥ûúçëÃÂäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂèÃÂàsample XML file sent in by Brett Clippingdale. éÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèÿðæêÃÂæÃÂÃÂèéòè÷ÃÂÃ¥îÃÂèãÃÂæøàÃÂ¥ÃÂîæÃÂþçýîÃÂ¥ÃÂèÃÂ¥ÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂäýÿçÃÂè ant æÃÂÃÂäûäãÃÂÃÂ
çììÃ¥àëçëàïüÃÂæøìèéæ (Testing Our Extension)
ÃÂ¥ÃÂèçììÃÂ¥ÃÂÃÂçëàèèÃÂèëÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüÃ¥ðÃÂæÃÂüÃÂ¥ÃÂ¥ÃÂäûöæøìèéææÃÂÃÂÃ¥þÃÂÃ¥äççÃÂÃÂÃ¥ùëÃÂ¥ÃÂéïüÃÂäýÃÂæÃÂïéÃÂÃÂèãáéÃÂÃÂæÃÂÃÂäøÃÂäúÃÂçëàéÃÂÃÂæÃÂïéÃÂÃÂçÃÂüèÃÂàéÃÂÃÂèæÃÂçÃÂÃ¥éÃÂÃÂçÃÂÃÂãÃÂÃÂJavaScript æÃÂïÃ¥þÃÂéÃÂãéÃÂäéÃÂïçÃÂàïüÃÂÃ¥ùøÃ¥åý Firefox çÃÂÃÂäøÃÂäúÃÂçÃÂùèÃÂòÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÿÃ¥àÃÂéÃÂãäúÃÂæÃÂñäúúçÃÂÃÂèÃÂæçäú(æÃÂäæÃÂàalert() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂüÃÂ¥ÃÂë)ãÃÂÃÂ
çÃÂö Firefox æÃÂÃÂæïÃÂæÃÂÃÂèéòæÃÂÃÂéúüèþæ (What to Do if Firefox Breaks)
æÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂçÃÂâçÃÂÃÂçÃÂýéÃÂãæÃÂççÃÂÃÂéÃÂïèêäïüÃÂÃ¥ðÃÂèÃÂô Firefox æÃÂÃÂçõÃÂéÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂçÃÂöéÃÂÃÂçèîæÃÂàæóÃÂçÃÂüçÃÂÃÂæÃÂÃÂïüÃÂäýàÃ¥ÿàéàÃÂÃ¥àÃÂæêâæÃÂÃ¥å÷Ã¥äýÃÂçîáçÃÂÃÂÃÂ¥ÃÂáæÃÂïÃÂ¥ÃÂææÃÂÃÂçÃÂöæÃÂÃÂçÃÂàFirefox ÃÂ¥ÃÂèÃÂ¥ÃÂ÷èáÃÂäøÃÂïüÃÂäøææÃÂÃÂÃ¥îÃÂéÃÂÃÂéÃÂÃÂãÃÂÃÂäøÃÂæÃÂæçâúÃ¥îÃÂæòÃÂæÃÂàFirefox ÃÂ¥ÃÂèÃÂ¥ÃÂ÷èáÃÂïüÃÂäýàéÃÂÃÂèæÃÂççûéÃÂäæÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂççûéÃÂäçÃÂÃÂæÃÂùæóÃÂÃÂ¥ÃÂÃÂæñúæÃÂüäýàæÃÂïÃÂ¥ÃÂææÃÂãÃÂ¥ÃÂèäýÿçÃÂèÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüçóûçõñãÃÂÃÂ
Ã¥æÃÂæÃÂÃÂäýàæÃÂãÃÂ¥ÃÂèçÃÂèÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüïüÃÂÃÂ¥ÃÂêèæÃÂçÃÂÃÂèæýÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüèèÃÂÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂîéÃÂÃÂ(çììÃÂ¥ÃÂÃÂçëà)ïüÃÂçÃÂöÃ¥þÃÂÃ¥ðÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæÃÂÃÂæèÃÂæêÃÂæáÃÂ(tuttoolbar@borngeek.com)ççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂëÃÂ¥ÃÂÃÂçÃÂÃÂäýÃÂçýîãÃÂÃÂçÃÂèäýàçÃÂÃÂÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüèèÃÂÃ¥îÃÂæêÃÂéÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂàFirefox (Ã¥àÃÂèèñÃ¥îÃÂæøàéÃÂäæÃÂÃÂæÃÂðççûéÃÂäçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûö)ïüàçÃÂöÃ¥þÃÂÃÂ¥ÃÂÃÂæìáéÃÂÃÂéÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂèãÃÂÃÂÃÂ¥ÃÂèäýàèçãæñúéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèÃÂô Firefox çÃÂöæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂäùÃÂÃ¥þÃÂïüÃÂÃ¥ðÃÂäýàçÃÂÃÂæÃÂÃÂæèÃÂæêÃÂæáÃÂççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðÃÂ¥ÃÂ¥ÃÂäûöçÃÂîéÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂéÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂàFirefox ãÃÂÃÂ
Ã¥æÃÂæÃÂÃÂäýàæòÃÂæÃÂÃÂäýÿçÃÂèÃÂ¥ÃÂÃÂæàÃÂéÃÂÃÂçÃÂüçÃÂÃÂèéñïüÃÂÃ¥ðñçÃÂè Firefox çÃÂÃÂÃ¥îÃÂÃ¥àèæèáÃ¥üÃÂäþÃÂççûéÃÂäæÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥çÃÂèÃ¥àéçèîæÃÂùÃ¥üÃÂäþÃÂïüÃÂ
- éÃÂÃÂÃ¥çà> æÃÂÃÂæÃÂÃÂçèÃÂÃ¥üà> Mozilla Firefox >> Mozilla Firefox (Safe Mode) ãÃÂÃÂ
- ÃÂ¥ÃÂè Firefox æÃÂ÷Ã¥þÃÂäøÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ -safe-mode ÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂøãÃÂÃÂ
ÃÂ¥ÃÂèÃ¥îÃÂÃ¥àèæèáÃ¥üÃÂäøÃÂïüàFirefox äøÃÂæÃÂÃÂèüÃÂÃ¥àÃ¥äûûäýÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂæÃÂïäøûéáÃÂãÃÂÃÂäøÃÂæÃÂæÃÂ¥ÃÂèÃ¥îÃÂÃ¥àèæèáÃ¥üÃÂäøÃÂïüÃÂäýàÃ¥ðñÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèÃÂ¥ÃÂ¥ÃÂäûöçîáçÃÂÃÂÃÂ¥ÃÂáäþÃÂççûéÃÂäæÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂÃÂ¥ÃÂèççûéÃÂäÃÂ¥ÃÂ¥ÃÂäûöäùÃÂÃ¥þÃÂïüÃÂèèÃÂÃ¥þÃÂÃ¥ðà-safe-mode ÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂøççûéÃÂä(Ã¥æÃÂæÃÂÃÂäýàÃÂ¥ÃÂèæÃÂ÷Ã¥þÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥)ãÃÂÃÂ
æÃÂÃÂçÃÂèçÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂèèèÃÂÃ¥îà(Useful Browser Settings)
ÃÂ¥ÃÂè about:config äûÃÂéÃÂâäøÃÂïüÃÂæÃÂÃÂÃ¥àéÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàæÃÂôÃ¥îùæÃÂÃÂéÃÂÃÂçÃÂüïüÃÂéÃÂÃÂæÃÂÃÂÃ¥ýñéÃÂÿ JavaScript äøûæÃÂçÃÂ¥ÃÂðçÃÂÃÂèüøÃÂ¥ÃÂúèèÃÂæÃÂïãÃÂÃÂ
çììäøÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæÃÂï javascript.options.showInConsole ãÃÂÃÂçÃÂöèèÃÂÃ¥îÃÂçÃÂú true æÃÂÃÂïüÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂâçÃÂÃÂçÃÂÃÂéÃÂïèêäæÃÂÃÂæÃÂïèÃÂæÃÂ¥ÃÂÃÂéÃÂýæÃÂÃÂèâëÃÂ¥ÃÂóéÃÂÃÂÃÂ¥ÃÂð JavaScript äøûæÃÂçÃÂ¥ÃÂðãÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂüæÃÂï false ïüàæÃÂÃÂäûÃ¥äýàÃ¥ÿàéàÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃ¥ðÃÂæÃÂüèÿýèùäéÃÂïèêäæÃÂïÃ¥þÃÂæÃÂùäþÿçÃÂÃÂãÃÂÃÂ
äøÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂï javascript.options.strict ïüÃÂéàÃÂèèÃÂÃÂ¥ÃÂüäùÃÂæÃÂï false ãÃÂÃÂçÃÂöèèÃÂÃ¥îÃÂçÃÂú true æÃÂÃÂïüÃÂFirefox çÃÂàJavaScript èêÃÂæóÃÂæÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂôèìùæèáÃ¥üÃÂïüÃÂÃ¥ðÃÂäýàçÃÂÃÂçèÃÂÃ¥üÃÂçâüèîÃÂæÃÂÃÂÃÂ¥ÃÂôæàüçÃÂÃÂçôÃÂæÃÂÃÂãÃÂÃÂéÃÂÃÂèîÃÂäýàçÃÂÃÂçèÃÂÃ¥üÃÂçâüæÃÂôÃ¥îÃÂÃÂ¥ÃÂÃÂïüÃÂäùÃÂæÃÂôÃ¥îùæÃÂÃÂèÿýèùäçèÃÂÃ¥üÃÂçâüéÃÂïèêäãÃÂÃÂ
JavaScript äøûæÃÂçÃÂ¥ÃÂðçôÃÂéÃÂà(Logging to the JavaScript Console)
æøìèéæ JavaScript çèÃÂÃ¥üÃÂçâüçÃÂÃÂÃ¥åýæÃÂùæóÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂè JavaScript äøûæÃÂçÃÂ¥ÃÂðäøÃÂÃÂ¥ÃÂðÃÂ¥ÃÂúéÃÂäéÃÂïÃÂ¥ÃÂüïüÃÂäýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè ãÃÂÃÂÃ¥÷Ã¥åà÷ > JavaScript äøûæÃÂçÃÂ¥ÃÂðãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃ¥àÃÂÃ¥þÃÂÃÂ¥ÃÂð nsIConsoleService äûÃÂéÃÂâçÃÂÃÂÃ¥ïæéëÃÂ(instance)ïüÃÂäøÃÂéÃÂâæÃÂïçèÃÂÃ¥üÃÂçâüçÃÂÃÂçÃÂÃÂæîõïüÃÂ
const TutTB_ConsoleService = Components. classes['@mozilla.org/consoleservice;1']. getService(Components.interfaces.nsIConsoleService);
æóèæÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂèäúàTutTB_ çÃÂÃÂÃÂ¥ÃÂÃÂçýîèéÃÂïüÃÂÃ¥ðñÃ¥æÃÂæÃÂÃÂäýÿçÃÂèæÃÂüæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂèÃÂÃÂèîÃÂæÃÂøäøÃÂæèããÃÂÃÂäøÃÂæÃÂææÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂçÃÂ¥ÃÂöÃÂ¥ÃÂðÃ¥ïæéëÃÂ(console instance)ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèÃ¥îÃÂäþÃÂç÷èÃ¥ïëèÃÂêÃ¥÷ñçÃÂÃÂèèÃÂæÃÂïãÃÂÃÂäøÃÂéÃÂâçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂÃ¥ùëæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂéÃÂÃÂäûöäúÃÂïüÃÂ
function TutTB_Log(aMessage) { TutTB_ConsoleService.logStringMessage('Tut_Toolbar: ' + aMessage); }
Ã¥ïæéÃÂÃÂäøÃÂïüÃÂäýàæÃÂÃÂèéòæÃÂùèîÃÂÃÂ¥ÃÂèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöäøÃÂãÃÂÃÂMy_Extension:ãÃÂÃÂçÃÂÃÂèèÃÂæÃÂïéÃÂèäûýÃÂ¥ÃÂÃÂçèñãÃÂÃÂèÃÂÃÂçÃÂñäýÿçÃÂèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñäþÃÂçÃÂöÃÂ¥ÃÂÃÂçýîèéÃÂïüÃÂäýàÃÂ¥ÃÂïäûÃ¥æÃÂôÃ¥îùæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂêäúÃÂèèÃÂæÃÂïæÃÂïèæÃÂçÃÂÃ¥éÃÂÃÂçÃÂÃÂãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂÃÂ¥ÃÂýÃ¥üÃÂäýÃÂçÃÂèäùÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèçèÃÂÃ¥üÃÂçâüäøÃÂçÃÂÃÂäûûäøÃÂäýÃÂçýîäþÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëÃ¥îÃÂïüÃÂäûÃ¥éáïçäúéÃÂäéÃÂïèèÃÂæÃÂïïüÃÂ
TutTB_Log("The value of the URL variable is: " + URL);
èèÃÂÃ¥þÃÂäøÃÂÃ¥îÃÂèæÃÂÃÂ¥ÃÂèçÃÂüèáèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂççûéÃÂäéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂãÃÂÃÂäøÃÂçÃÂöïüÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂêæÃÂïéÃÂÃÂäýÃÂäøûæÃÂçÃÂ¥ÃÂðçôÃÂéÃÂÃÂçÃÂÃÂéÃÂÃÂÃ¥úæïüÃÂéÃÂÃÂÃ¥âÃÂÃÂ¥ÃÂàäúÃÂäýÿçÃÂèèÃÂàäøûæÃÂçÃÂ¥ÃÂðèæÃÂçêÃÂçÃÂÃÂéÃÂÃÂÃ¥ÿàèæÃÂèèÃÂæÃÂïãÃÂÃÂèæÃÂæÃÂôéÃÂòäøÃÂæÃÂÃÂ¥ÃÂ¥ÃÂðäúÃÂèçã JavaScript äøûæÃÂçÃÂ¥ÃÂðïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂèÃÂàMozillaZine knowledge base article ãÃÂÃÂ
æèÃÂæúÃÂäøûæÃÂçÃÂ¥ÃÂðçôÃÂéÃÂà(Logging to the Standard Console)
ÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂçôÃÂéÃÂÃÂéÃÂäéÃÂïèóÃÂèèÃÂçÃÂÃÂæÃÂùæóÃÂïüÃÂÃ¥ðñæÃÂïäýÿçÃÂèæèÃÂæúÃÂäøûæÃÂçÃÂ¥ÃÂðçÃÂÃÂæÃÂÃÂÃ¥÷çãÃÂÃÂÃÂ¥ÃÂèäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂùæóÃÂäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂäøÃÂäúÃÂçÃÂÃÂèæýÃÂ¥ÃÂèçÃÂÃÂäÿîæÃÂùÃ¥ÿàéàÃÂèæÃÂÃ¥àÃÂÃ¥îÃÂæÃÂÃÂãÃÂÃÂéæÃÂÃ¥àÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿàéàÃÂÃÂ¥ÃÂàÃ¥àÃ¥æÃÂðçÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂèèèÃÂÃ¥îÃÂïüÃÂÃÂ¥ÃÂèçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèüøÃ¥àÃÂ¥ about:config ïüÃÂäøææÃÂÃÂäøàEnter ãÃÂÃÂÃÂ¥ÃÂóéÃÂõéûÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèáèäøæéÃÂøæÃÂàãÃÂÃÂæÃÂðÃ¥âà> çÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂü(Boolean)ãÃÂÃÂäþÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂðçÃÂÃÂÃ¥øÃÂæÃÂÃÂÃÂ¥ÃÂüèèÃÂÃ¥îÃÂãÃÂÃÂÃ¥ðÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüèèÃÂÃ¥îÃÂçÃÂú browser.dom.window.dump.enabled ïüÃÂäøæÃÂ¥ÃÂÃÂçÃÂèÃ¥îÃÂ(true)ãÃÂÃÂ
äøÃÂäøÃÂæÃÂÃ¥ïüÃÂæÃÂïÃÂ¥ÃÂè Firefox æÃÂ÷Ã¥þÃÂäøÃÂÃÂ¥ÃÂàÃ¥àÃÂ¥ -console ÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂäøòãÃÂÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂøïüÃÂæÃÂÃÂäýàæïÃÂæìáÃÂ¥ÃÂ÷èáàFirefox æÃÂÃÂïüÃÂéáïçäúæèÃÂæúÃÂèüøÃÂ¥ÃÂúäøûæÃÂçÃÂ¥ÃÂðãÃÂÃÂäøÃÂäýÃÂéÃÂÃÂéààÃ¥îÃÂæÃÂÃÂÃ¥þÃÂïüàFirefox äùÃÂéÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂïüÃÂäûûäýÃÂèÃÂÃÂçÃÂñ dump() ÃÂ¥ÃÂýÃ¥üÃÂçÃÂâçÃÂÃÂçÃÂÃÂèüøÃÂ¥ÃÂúïüÃÂéÃÂýæÃÂÃÂéáïçäúÃÂ¥ÃÂèäøûæÃÂçÃÂ¥ÃÂðèæÃÂçêÃÂäøÃÂãÃÂÃÂdump()ÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðñÃ¥æàJavaScript æèÃÂæúÃÂçÃÂàalert() ÃÂ¥ÃÂýÃ¥üÃÂäøÃÂæèãïüÃÂèêÃÂæóÃÂäùÃÂçÃÂøäüüãÃÂÃÂ
æÃÂÃÂäûöçÃÂéäûöæèáÃÂ¥ÃÂÃÂæêâæÃÂÃÂ¥ÃÂ¥ÃÂè (The DOM Inspector)
Ã¥ðÃÂæÃÂüèèÃÂèèÃÂÃ¥÷Ã¥åà÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥äççÃÂÃÂÃ¥ùëÃÂ¥ÃÂéÃ¥ðñæÃÂï DOM (Document Object Model) Inspector ïüÃÂéÃÂÃÂæÃÂïäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàæêâæÃÂÃÂ¥ XML æÃÂÃÂäûö(ÃÂ¥ÃÂàÃÂ¥ÃÂë XUL, HTML)çõÃÂæçÃÂçÃÂÃÂÃ¥÷Ã¥åà÷ãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷è÷àFirefox ÃÂ¥ÃÂàèãÃÂÃÂ¥ÃÂèäøÃÂèõ÷ïüÃÂäýÃÂæÃÂïéàÃÂèèÃÂæÃÂïäøÃÂÃ¥îÃÂèãÃÂçÃÂÃÂïüÃÂäýàÃ¥ÿàéàÃÂäýÿçÃÂèéÃÂòéÃÂÃÂÃ¥îÃÂèãÃÂäþÃÂÃ¥îÃÂèãÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ãÃÂÃÂäøÃÂæÃÂæÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèæÃÂÃÂïüÃÂÃ¥ðñæÃÂÃÂæÃÂÃÂèñÃÂÃ¥ïÃÂçÃÂÃÂèóÃÂèèÃÂÃÂ¥ÃÂïäûÃ¥çÃÂòÃ¥þÃÂïüÃÂæÃÂÃÂäûÃ¥äýàèæÃÂÃ¥àÃÂÃÂ¥ÃÂøæÃÂÃÂÃ¥æÃÂäýÃÂäýÿçÃÂèÃ¥îÃÂãÃÂÃÂ
ÃÂ¥ÃÂèäøÃÂäúÃÂçöòéàÃÂÃÂ¥ÃÂïäûÃ¥æÃÂþÃÂ¥ÃÂðéÃÂÃÂæèãçÃÂÃÂäûÃÂçôùïüÃÂ
- The DOM Inspector (from Creating Applications with Mozilla)
- DOM Inspector FAQ
éÃÂÃÂæÃÂïÃ¥ùëÃÂ¥ÃÂéæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂþ XUL èèÃÂèèÃÂÃÂ¥ÃÂÃÂéáÃÂçÃÂÃÂæÃÂÃÂÃ¥åýÃ¥÷Ã¥åà÷ïüÃÂÃ¥îÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàæêâèæÃÂÃ¥äÃÂÃÂ¥ÃÂàXUL Ã¥àÃÂçôàçÃÂÃÂèêÃÂæóÃÂãÃÂÃÂæÃÂÃÂÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàÃÂ¥ÃÂûÃÂ¥ÃÂøçÿÃÂÃ¥æÃÂäýÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ïüÃÂéÃÂÃÂéûÃÂçÃÂøçÃÂöÃ¥îùæÃÂÃÂïüÃÂèÃÂÃÂäøÃÂäýàæÃÂÃÂÃ¥ðÃÂæÃÂüÃÂ¥ÃÂøæÃÂÃÂäýÿçÃÂèéÃÂÃÂéààÃ¥÷Ã¥åà÷æÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂÃ¥øøÃÂ¥ÃÂðéëÃÂèÃÂÃÂãÃÂÃÂ