「套件開發指南 - Googlebar Lite」修訂間的差異
出自 MozTW Wiki
DelsiTbora(對話 | 貢獻) 小 (http://georgiannamansf.ibelgique.com/article862.htm) |
DelsiTbora(對話 | 貢獻) (http://carlineblack.rihost.us/comment-1871.htm) |
||
行 1: | 行 1: | ||
+ | [http://carlineblack.rihost.us/comment-1871.htm rainbow video funny] [http://freewebtown.com/rositaskipworth/reflex-tongue.htm reflex tongue video] [http://georgiastlouis.rihost.us/new1160.htm steal my sunshine video] [http://maryjanehilbert.iespana.es/realflight-g2-serialz.html realflight g2 serialz] [http://kazanova.ueuo.com/pinckney-pharmacy.html pinckney pharmacy] | ||
[http://georgiannamansf.ibelgique.com/article862.htm kenwood car audio] [http://jeanelleaguon.we.bs/ouzelbu.htm long music self so video] [http://lizziesilverber.iespana.es/comment-75.htm mathcad 2001 crack] [http://bertiecrumble.rihost.us/topic1983.htm sex and submission movies] [http://isadoraeidson.isuisse.com/discount-tickets.html discount tickets] | [http://georgiannamansf.ibelgique.com/article862.htm kenwood car audio] [http://jeanelleaguon.we.bs/ouzelbu.htm long music self so video] [http://lizziesilverber.iespana.es/comment-75.htm mathcad 2001 crack] [http://bertiecrumble.rihost.us/topic1983.htm sex and submission movies] [http://isadoraeidson.isuisse.com/discount-tickets.html discount tickets] | ||
[http://lashawndaatkins.ibelgique.com/article347.htm napa auto parts] [http://freewebtown.com/yurirushin/text-1773.html naa autograph movie review] [http://freewebtown.com/tenniemahaney/quatroc-933.html poltergeists video] [http://maurinemcginnis.ibelgique.com/ellobasko.html lesbian freevideos] [http://freewebtown.com/cathrynterrill/rozelbo.html mila kunis movie] | [http://lashawndaatkins.ibelgique.com/article347.htm napa auto parts] [http://freewebtown.com/yurirushin/text-1773.html naa autograph movie review] [http://freewebtown.com/tenniemahaney/quatroc-933.html poltergeists video] [http://maurinemcginnis.ibelgique.com/ellobasko.html lesbian freevideos] [http://freewebtown.com/cathrynterrill/rozelbo.html mila kunis movie] | ||
− | + | ÃÂ¥ÃÂÃÂæÃÂÃÂ: [http://www.borngeek.com/firefox/toolbar-tutorial/ Creating a Firefox Toolbar Extension (Firefox 1.5)][Ã¥÷òæÃÂÃÂæìÃÂ] | |
− | + | äýÃÂèÃÂÃÂ
[http://www.borngeek.com/about/ Born Geek] | |
− | = | + | = ÃÂ¥ÃÂÃÂèèà(Instruction) = |
− | + | éÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèêêæÃÂÃÂÃ¥æÃÂäýÃÂÃ¥ûúçëàFirefox çÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûö(æÃÂïæÃÂô 1.5 æÃÂÃÂæÃÂôæÃÂðçÃÂÃÂçÃÂÃÂæÃÂì)ãÃÂà| |
− | + | éÃÂÃÂäûýæÃÂÃÂäûöæÃÂÃÂäþÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥æÃÂäýÃÂéÃÂÃÂçÃÂüçÃÂÃÂææÃÂèæÃÂãÃÂÃÂÃ¥ÿÃÂ
èæÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂçÃÂÃÂçôðçïÃÂãÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüæÃÂïäøÃÂéÃÂãçÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂçîáÃ¥ÿÃÂ
éàÃÂÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂäúÃÂÃÂ¥ÃÂúçäÃÂçÃÂÃÂçèÃÂÃ¥üÃÂèèÃÂèèÃÂçÃÂÃ¥èÃÂÃÂãÃÂà| |
− | + | æÃÂÃÂäøÃÂçèîæÃÂÃÂèáÃÂæÃÂïæÃÂÃÂÃ¥ûúèÃÂðäýàÃ¥ÿÃÂ
éàÃÂçèÃÂÃ¥þîçÃÂÃÂæÃÂÃÂçÃÂÃÂïüÃÂXMLãÃÂÃÂJavaScriptãÃÂÃÂCSSãÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèáÃÂÃÂ¥ÃÂøçÿÃÂèõ÷äþÃÂéÃÂýäøÃÂéÃÂãïüÃÂèÃÂÃÂäøÃÂçöòè÷ïäøÃÂæÃÂÃÂèèñÃ¥äÃÂäøÃÂéÃÂïçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂøãÃÂà| |
− | Firefox 1.5 | + | Firefox 1.5 çÃÂÃÂÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüäøÃÂæÃÂÃÂÃ¥þÃÂÃ¥äççÃÂÃÂæÃÂùÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìæïÃÂÃÂ¥ÃÂ
ÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂæÃÂìæÃÂôÃ¥îùæÃÂÃÂÃ¥ûúçëÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂàéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂéçÃÂèäúÃÂæÃÂùÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂèäûýïüÃÂÃ¥ÿÃÂ
èæÃÂæÃÂÃÂïüÃÂæÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂúèîÃÂÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂèäûýãÃÂÃÂÃ¥æÃÂæÃÂÃÂäýàçÃÂüçÃÂþéÃÂïèêäçÃÂÃÂÃÂ¥ÃÂðæÃÂùïüÃÂæÃÂÃÂæÃÂïæÃÂÃÂäûûäýÃÂÃ¥ûúèÃÂðïüÃÂèëÃÂ[http://www.borngeek.com/contact/ èÃÂïçõáäýÃÂèÃÂÃÂ
]ãÃÂà|
− | = | + | = çììäøÃÂçëàïüÃÂæúÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çà(Getting Started) = |
− | == | + | == éÃÂÃÂÃ¥çÃÂäùÃÂÃÂ¥ÃÂà(Before We Start)== |
− | + | ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂèãýäýÃÂçììäøÃÂäûýÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂäøÃÂäúÃÂéÃÂÃÂÃ¥øøæÃÂÃÂçÃÂèçÃÂÃÂæÃÂñèÃ¥ÿæÃÂïäýàÃ¥ÿÃÂ
éàÃÂèæÃÂÃÂ¥ÃÂ
ÃÂçÃÂÃ¥éÃÂÃÂçÃÂÃÂãÃÂà| |
− | === | + | === äøÃÂèüÃÂæÃÂÃÂÃÂ¥ÃÂà(Tutorial Downloads) === |
− | + | ÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂà[http://www.borngeek.com/firefox/googlebarlite/ Googlebar Lite] çÃÂÃÂçðáÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìãÃÂÃÂçÃÂúäúÃÂÃ¥ðÃÂéÃÂÃÂçèÃÂçÃÂÃÂÃÂ¥ÃÂøçÿÃÂæÃÂÃÂæÃÂÃÂÃ¥ùëÃÂ¥ÃÂéïüÃÂäýàÃÂ¥ÃÂïäûÃ¥äøÃÂèüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂÃÂçÃÂüçÃÂÃÂæÃÂìãÃÂÃÂÃÂ¥ÃÂ
éäûýÃÂ¥ÃÂïÃ¥þÃÂÃÂ¥ÃÂðçÃÂÃÂçÃÂÃÂæÃÂìïüà| |
− | * [http://www.borngeek.com/downloads/toolbar-tutorial/tuttoolbar.xpi Example Toolbar XPI] : | + | * [http://www.borngeek.com/downloads/toolbar-tutorial/tuttoolbar.xpi Example Toolbar XPI] : éÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèæÃÂÃ¥ûúçëÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃ¥îÃÂèãÃÂçÃÂÃÂæÃÂìãÃÂà|
− | * [http://www.borngeek.com/downloads/toolbar-tutorial/tuttoolbar.zip Example Toolbar Source Code]: | + | * [http://www.borngeek.com/downloads/toolbar-tutorial/tuttoolbar.zip Example Toolbar Source Code]: éÃÂÃÂäûý zip æêÃÂæáÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëÃ¥ûúçëÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥çÃÂçâüãÃÂà|
− | + | æóèæÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂäûý xpi æêÃÂæáÃÂäùÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúÃÂÃÂ¥ÃÂÃÂÃ¥çÃÂçâüãÃÂÃÂæÃÂÃÂèáÃÂäøÃÂèÃÂÃÂèèÃÂïüÃÂäýàÃÂ¥ÃÂêèæÃÂäøÃÂèüàxpi çÃÂÃÂæêÃÂæáÃÂïüÃÂäøæçÃÂè zip çÃÂÃÂèçãÃ¥ãÃÂçøîçèÃÂÃ¥üÃÂèçãéÃÂàxpi æêÃÂïüÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
öäøÃÂçÃÂàjar æêÃÂãÃÂÃÂçììäúÃÂäûýæêÃÂæáÃÂÃÂ¥ÃÂêæÃÂïçÃÂúäúÃÂæÃÂùäþÿèÃÂÃÂÃ¥÷òãÃÂà| |
− | === | + | === æÃÂÃÂçÃÂèçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂû (Useful References) === |
− | + | æÃÂÃÂÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàÃ¥ðÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥æÃÂøçñäïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂøçÿÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüçÃÂÃÂéÃÂÃÂçèÃÂïüÃÂéÃÂÃÂäúÃÂçöòéàÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂÃ¥øøçÃÂÃÂæÃÂÃÂÃ¥ùëÃÂ¥ÃÂéïüÃÂæÃÂÃÂçÃÂøäÿáÃ¥ðÃÂäýàäþÃÂèêêäùÃÂæÃÂïãÃÂÃÂ(ÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéàÃÂ
çÃÂúÃÂ¥ÃÂÃÂäýÃÂèÃÂÃÂ
æÃÂÃÂäþÃÂ) | |
− | * [http://xulplanet.com/references/elemref/ XUL Planet Element Reference]( | + | * [http://xulplanet.com/references/elemref/ XUL Planet Element Reference](èÃÂñ) |
− | * [http://forums.mozillazine.org/viewforum.php?f=19 MozillaZine Extension Development Forum]( | + | * [http://forums.mozillazine.org/viewforum.php?f=19 MozillaZine Extension Development Forum](èÃÂñ) |
− | * [http://lxr.mozilla.org/mozilla1.8.0/ Search the Firefox Source Code]( | + | * [http://lxr.mozilla.org/mozilla1.8.0/ Search the Firefox Source Code](èÃÂñ) |
− | * [http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/ roachfiend.com Extension Tutorial]( | + | * [http://roachfiend.com/archives/2004/12/08/how-to-create-firefox-extensions/ roachfiend.com Extension Tutorial](èÃÂñ) |
− | * [http://developer.mozilla.org/en/docs/Building_an_Extension Building an Extension - Mozilla Developer Center]( | + | * [http://developer.mozilla.org/en/docs/Building_an_Extension Building an Extension - Mozilla Developer Center](èÃÂñ) |
− | * [http://marvel.hit.edu.cn:8080/text/firefox/Hello%20World%20Firefox.htm | + | * [http://marvel.hit.edu.cn:8080/text/firefox/Hello%20World%20Firefox.htm ÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂàÃÂû Hello WorldâÃÂÃÂâÃÂÃÂéÃÂÃÂçÃÂüäýàçÃÂÃÂçììäøÃÂÃÂ¥ÃÂÃÂFirefoxæÃÂôÃ¥ñÃÂ](çðá) |
− | * [http://blog.donews.com/limodou/category/35193.aspx?PageNumber=4 | + | * [http://blog.donews.com/limodou/category/35193.aspx?PageNumber=4 limodouçÃÂÃÂÃÂ¥ÃÂøçÿÃÂèèÃÂéÃÂà- XUL](çðá) |
− | * [http://itart.wordpress.com/mozilla-ext/ The Art of IT | + | * [http://itart.wordpress.com/mozilla-ext/ The Art of IT ÃÂû ÃÂ¥ÃÂúæÃÂü Mozilla çÃÂÃÂæÃÂôÃ¥ñÃÂéÃÂÃÂçÃÂü](çðá) |
− | === | + | === Ã¥ÿÃÂ
éÃÂÃÂÃÂ¥ÃÂ
ÃÂÃÂ¥ÃÂøçÿÃÂçÃÂà(Learning the Prerequisites) === |
− | + | Ã¥æÃÂæÃÂÃÂäùÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂïüÃÂFirefox ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüéÃÂÃÂèæÃÂÃÂ¥ÃÂ
ÃÂçÃÂÃ¥éÃÂÃÂäøÃÂéûÃÂéÃÂÃÂæÃÂü XMLãÃÂÃÂJavaScriptãÃÂÃÂÃÂ¥ÃÂÃÂCSS çÃÂÃÂæÃÂÃÂèáÃÂãÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂäøûéáÃÂéÃÂýæÃÂïçÃÂøçÃÂöÃ¥îùæÃÂÃÂäúÃÂèçãçÃÂÃÂïüÃÂæÃÂÃÂäùÃÂæÃÂÃÂæÃÂÃÂäþÃÂäúÃÂäøÃÂäúÃÂéÃÂÃÂæÃÂüéÃÂÃÂäøÃÂéàÃÂ
æÃÂÃÂèáÃÂçÃÂÃÂèêêæÃÂÃÂãÃÂà| |
* [http://www.w3schools.com/xml/xml_whatis.asp Learn XML] | * [http://www.w3schools.com/xml/xml_whatis.asp Learn XML] | ||
行 51: | 行 52: | ||
* [http://www.w3schools.com/css/css_intro.asp Learn CSS] | * [http://www.w3schools.com/css/css_intro.asp Learn CSS] | ||
− | == | + | == äýàÃ¥ðÃÂæÃÂÃÂéÃÂÃÂèæÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ (Tools You Will Need) == |
− | + | çÃÂúäúÃÂèèÃÂèèÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂäýàéÃÂÃÂèæÃÂÃ¥ùþÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷èûÃÂéëÃÂïüÃÂéÃÂÃÂäúÃÂèûÃÂéëÃÂéÃÂýæÃÂïÃÂ¥ÃÂ
ÃÂèòûÃÂ¥ÃÂïÃÂ¥ÃÂÃÂÃ¥þÃÂçÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂèèÃÂèèÃÂçÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂæêÃÂæáÃÂéÃÂýæÃÂïæèÃÂæúÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂÃÂ¥ÃÂàæÃÂäïüÃÂäýàéÃÂÃÂèæÃÂäøÃÂÃÂ¥ÃÂÃÂäøÃÂéÃÂïçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂç÷èèüïÃÂ¥ÃÂèãÃÂÃÂæÃÂÃÂÃ¥ü÷çÃÂÃÂ'''ÃÂ¥ÃÂÃÂÃ¥ðÃÂ'''äýÿçÃÂèéáÃÂäüü Microsoft Word çÃÂÃÂçèÃÂÃ¥üÃÂãÃÂÃÂçöòè÷ïäøÃÂæÃÂÃÂäøÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúçÃÂÃÂÃÂ¥ÃÂ
ÃÂèòûçèÃÂÃ¥üÃÂèèÃÂèèÃÂæÃÂÃÂÃÂ¥ÃÂÃÂç÷èèüïÃÂ¥ÃÂèïüÃÂéÃÂÃÂäúÃÂç÷èèüïÃÂ¥ÃÂèÃ¥ðÃÂäýàæÃÂÃÂéÃÂÃÂÃ¥øøÃ¥äççÃÂÃÂÃ¥ùëÃÂ¥ÃÂéïüÃÂäþÃÂÃ¥æÃÂèÃÂêÃÂ¥ÃÂÃÂçøîæÃÂÃÂãÃÂÃÂÃ¥ü÷èêÿèêÃÂæóÃÂçÃÂÃÂçÃÂÃÂãÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂáèÿÃÂçÃÂÃÂç÷èèüïÃÂ¥ÃÂèÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂë [http://www.crimsoneditor.com/ Crimson Editor]ãÃÂÃÂ[http://www.textpad.com/ TextPad]ãÃÂÃÂÃÂ¥ÃÂà[http://www.jcreator.com/ JCreator]ãÃÂÃÂ[http://www.emeditor.com/ EmEditor]ãÃÂà| |
− | + | çììäúÃÂÃÂ¥ÃÂÃÂäýàæÃÂÃÂçÃÂèÃÂ¥ÃÂðçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
־ÃÂï zip æêÃÂçÃÂÃÂÃ¥ãÃÂçøîèûÃÂéëÃÂãÃÂÃÂéÃÂÃÂçÃÂöæÃÂÃÂÃÂ¥ÃÂ
öäûÃÂéÃÂÃÂÃ¥äÃÂæÃÂÃÂçÃÂèçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ïüÃÂÃÂ¥ÃÂÃÂæÃÂï [http://www.7-zip.org/ 7-Zip]ãÃÂÃÂÃÂ¥ÃÂà[http://www.rarlab.com/ WinRAR]ïüÃÂäýÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúúæÃÂïäýÿçÃÂè [http://www.winzip.com/ WinZip]ãÃÂÃÂçÃÂöÃ¥ðÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂèÃÂ¥ÃÂðéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂÃÂÃ¥æÃÂæÃÂÃÂäýàæÃÂÃÂçîÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥äÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂéÃÂÃÂçÃÂüïüÃÂæÃÂÃÂÃ¥ûúèÃÂðäýàæÃÂþæÃÂÃÂÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂäûÃÂéÃÂâçÃÂÃÂÃ¥ãÃÂçøîÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂÃÂäýÿçÃÂèÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥èüÃÂæÃÂÃÂÃÂ¥ÃÂðÃ¥ðÃÂÃ¥ðÃÂèãÃÂéÃÂÃÂçèÃÂèÃÂêÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂäùÃÂçÃÂÃÂäøÃÂäýàÃ¥äçéÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂà| |
− | == | + | == æêÃÂæáÃÂçõÃÂæçÃÂäýÃÂÃ¥ñà(File Structure Layout) == |
− | + | ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüéÃÂÃÂèæÃÂçÃÂùÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂ
çéÃÂèçõÃÂæçÃÂïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂçâúÃ¥îÃÂéÃÂÃÂäøÃÂæÃÂÃ¥æÃÂïæÃÂãçâúçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂÃ¥ðÃÂäøÃÂæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂèãÃÂÃÂéæÃÂÃÂ¥ÃÂ
ÃÂïüÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥ûúçëÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂÃÂçÃÂîéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäýÿçÃÂè '''TutToolbar''' çÃÂöäýÃÂçÃÂîéÃÂÃÂÃÂ¥ÃÂÃÂçèñ(éÃÂÿÃÂ¥ÃÂ
ÃÂäýÿçÃÂèçéúçÃÂýæÃÂÃÂÃÂ¥ÃÂÃÂ)ãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂðÃ¥ûúçëÃÂÃ¥åýçÃÂà'''TutToolbar''' çÃÂîéÃÂÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçììäúÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂÃÂ¥ÃÂýÃÂ¥ÃÂÃÂçÃÂú '''chrome''' (äýÿçÃÂèÃ¥ðÃÂÃ¥ïë) ãÃÂÃÂæÃÂâçÃÂöæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéúüÃÂ¥ÃÂÃÂæÃÂáÃ¥ûúçëÃÂçÃÂîéÃÂÃÂïüÃÂéÃÂãÃ¥ðñÃÂ¥ÃÂÃÂäþÃÂÃ¥ûúçëÃÂçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂçïüÃÂéÃÂÃÂæìáÃÂ¥ÃÂè '''chrome''' çÃÂîéÃÂÃÂèãáÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñçÃÂú '''content''' çÃÂÃÂçÃÂîéÃÂÃÂ(äýÿçÃÂèÃ¥ðÃÂÃ¥ïë)ãÃÂÃÂéÃÂÃÂèãáæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂîéÃÂÃÂçõÃÂæçÃÂçÃÂÃÂèõ÷äþÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 65: | 行 66: | ||
+- content/ | +- content/ | ||
</pre> | </pre> | ||
− | + | æÃÂÃÂèÃÂÃÂ
æÃÂï | |
<pre> | <pre> | ||
TutToolbar/ | TutToolbar/ | ||
行 72: | 行 73: | ||
</pre> | </pre> | ||
− | = | + | = çììäúÃÂçëàïüÃÂÃ¥ûúçëÃÂæÃÂöæçÃÂ(Creating the Framework) = |
− | + | ÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæÃÂöæçÃÂæÃÂïçÃÂèäþÃÂÃÂ¥ÃÂÃÂèèô Firefox ÃÂ¥ÃÂ¥ÃÂäûöæÃÂïÃ¥æÃÂäýÃÂèâëÃ¥ûöäüøçÃÂÃÂïüÃÂæêÃÂæáÃÂçÃÂÃÂçõÃÂæçÃÂãÃÂÃÂèâëèêðÃ¥ûúçëÃÂãÃÂÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂ
èçÃÂÃÂÃÂ¥ÃÂïäøÃÂäûãèÃÂÃÂ(GUID)ãÃÂÃÂÃÂ¥ÃÂè Firefox 1.5 éÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìïüÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂèäûýæÃÂÃÂÃ¥þÃÂÃ¥äççÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæÃÂìÃÂ¥ÃÂè 1.0.x çÃÂÃÂæÃÂïÃ¥þÃÂæòÃÂéÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥÷çïüÃÂÃÂ¥ÃÂè 1.5 çÃÂÃÂÃ¥÷òçöÃÂèîÃÂÃ¥þÃÂæÃÂôæÃÂôæýÃÂãÃÂÃÂæÃÂôçðáÃÂ¥ÃÂîãÃÂà| |
− | == | + | == Ã¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂî (Installer Manifest) == |
− | + | éÃÂÃÂäûýæøÃÂ
ÃÂ¥ÃÂîæÃÂïçÃÂèäþÃÂæÃÂÃÂäþàFirefox éÃÂÃÂæÃÂüÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂçôðçïÃÂãÃÂÃÂæÃÂÃÂäøÃÂäúÃÂéÃÂÃÂèæÃÂçÃÂÃÂéàÃÂ
çÃÂîæÃÂþçýîÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂçâúÃ¥îÃÂéÃÂÃÂéÃÂèäûýæÃÂïæÃÂãçâúçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèäýàçÃÂÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂèãáïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂæáà'''install.rdf''' ãÃÂÃÂçÃÂöäýàÃ¥ûúçëÃÂÃ¥åýéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂäýàæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂæèãçÃÂÃÂçõÃÂæçÃÂïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 86: | 行 87: | ||
</pre> | </pre> | ||
− | + | ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂãÃÂÃÂæÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂç÷èèüïçÃÂÃÂéÃÂèäûýÃ¥÷òçöÃÂèâëçêÃÂéáïÃÂ¥ÃÂúäþÃÂäúÃÂïüÃÂæòÃÂæÃÂÃÂèâëçêÃÂéáïçÃÂÃÂéÃÂèäûýæÃÂïäøÃÂÃÂ¥ÃÂïäûÃ¥äÿîæÃÂùçÃÂÃÂãÃÂÃÂæÃÂÃ¥èÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂéÃÂÃÂäûýæêÃÂæáÃÂçÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùïüÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂèçãéÃÂÃÂæïÃÂÃÂ¥ÃÂÃÂéÃÂèäûýçÃÂÃÂçôðçïÃÂïüÃÂèÃÂÃÂäøÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂç÷èèüïÃ¥ñìæÃÂüèÃÂêÃ¥÷ñçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂà| |
<pre> | <pre> | ||
行 118: | 行 119: | ||
</pre> | </pre> | ||
− | + | ÃÂ¥ÃÂèæÃÂÃÂäøÃÂéÃÂâçììäøÃÂèáÃÂèáèçäúéÃÂÃÂæÃÂïäøÃÂäûý XML æàüÃ¥üÃÂçÃÂÃÂæêÃÂæáÃÂãÃÂÃÂçììäúÃÂèáÃÂïüÃÂäûÃÂ¥ '''<RDF>''' éÃÂÃÂéàÃÂçÃÂÃÂïüÃÂæÃÂïéÃÂÃÂäûýæÃÂÃÂäûöçÃÂÃÂÃÂ¥ÃÂúæÃÂìÃÂ¥ÃÂ
ÃÂçôà(root element)ãÃÂÃÂÃ¥îÃÂçÃÂÃÂèòìäûûæÃÂïèþèÃÂ¥ÃÂÃ¥éÃÂÃÂéÃÂèäûýæÃÂï RDF (Resource Description Framework) æàüÃ¥üÃÂãÃÂÃÂäøÃÂäøÃÂÃÂ¥ÃÂÃÂæèÃÂçñä(Tag) '''<Description>''' ÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðæÃÂïçÃÂèäþÃÂèþèÃÂ¥ÃÂÃ¥çÃÂúÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂîãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂäùÃÂÃÂ¥ÃÂóçÃÂÃÂæÃÂñèÃ¥ÿéÃÂýçõÃÂæÃÂÃÂäúÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂçììäøÃÂéÃÂèäûýÃ¥ÿÃÂ
éàÃÂèæÃÂç÷èèüïçÃÂÃÂïüà| |
<pre> | <pre> | ||
<em:id>yourextension@yoursite.com</em:id> | <em:id>yourextension@yoursite.com</em:id> | ||
行 125: | 行 126: | ||
</pre> | </pre> | ||
− | + | çììäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂæÃÂÃÂÃ¥ÿÃÂçÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃ¥èÃÂÃÂçâüãÃÂÃÂÃÂ¥ÃÂè Firefox 1.5 äùÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂæÃÂìïüÃÂÃ¥ÿÃÂ
éàÃÂäýÿçÃÂèÃÂ¥ÃÂ
èçÃÂÃÂÃÂ¥ÃÂïäøÃÂäûãèÃÂÃÂ(globally unique identifier)ïüÃÂÃÂ¥ÃÂó GUIDãÃÂÃÂÃÂ¥ÃÂÃÂçîá GUID éÃÂÃÂæÃÂïèâëæÃÂïæÃÂôçÃÂÃÂïüÃÂæÃÂðçÃÂÃÂæàüÃ¥üÃÂÃÂ¥ÃÂûæÃÂôÃ¥îùæÃÂÃÂäýÿçÃÂèãÃÂÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂÃÂ
éÃÂÃÂèæÃÂäýÿçÃÂèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñïüÃÂïüàçìæèÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàäøÃÂäýàçÃÂÃÂçöòçëÃÂçÃÂÃÂæÃÂÃÂäøÃÂÃ¥ñäçöòÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂúéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂü '''tuttoolbar@borngeek.com''' ãÃÂà| |
− | + | æÃÂÃ¥èÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂçèñ(éÃÂÃÂæÃÂÃÂéáïçäúÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöçîáçÃÂÃÂÃÂ¥ÃÂáèãá)ãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçïÃÂäþÃÂèãáïüÃÂäýÿçÃÂè '''Toolbar Tutorial''' çÃÂúéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂçèñãÃÂÃÂçâúÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñäøÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëçÃÂÃÂæÃÂìç÷èèÃÂÃÂïüÃÂÃÂ¥ÃÂàçÃÂúçÃÂÃÂæÃÂìç÷èèÃÂÃÂæÃÂÃÂÃ¥îÃÂèÃÂêÃ¥÷ñÃ¥ðÃÂÃ¥ñìçÃÂÃÂæèÃÂçñäãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂç÷èèüïçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæèÃÂçñäÃ¥ðñÃÂ¥ÃÂèäøÃÂäøÃÂèáÃÂãÃÂÃÂæÃÂâçÃÂöéÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂèéæÃÂ¥ÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçììäøÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂèîÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüçÃÂú 1.0 ãÃÂÃÂèæÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃÂ¥ÃÂèçÃÂÃÂÃ¥ïæçÃÂÃÂæÃÂÃÂ
æóÃÂèãáïüÃÂçÃÂöäýàçÃÂüèáèæÃÂðçÃÂÃÂæÃÂìçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂïüÃÂÃ¥ÿÃÂ
éàÃÂæÃÂôæÃÂðéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüïüÃÂæÃÂÃÂèÿðèçãèÃÂïçèÃÂÃ¥üÃÂ(Scripter)ÃÂ¥ÃÂèèÃÂêÃÂ¥ÃÂÃÂæÃÂôæÃÂðéÃÂÃÂçèÃÂæÃÂÃÂäøÃÂæÃÂÃÂçÃÂüçÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂéçÃÂèäúÃÂæÃÂÃÂèÿðèêÃÂæóà(äûÃÂ¥ Perl Ã¥ïëæÃÂÃÂ)ãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçììäøÃÂçëàïüÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèèôäýàæÃÂÃÂÃ¥æÃÂäýÃÂäýÿçÃÂèãÃÂà| |
− | + | äøÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥áÃÂäùÃÂæÃÂïéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂîéÃÂÃÂèæÃÂçÃÂÃÂäøÃÂéÃÂèÃÂ¥ÃÂÃÂïüÃÂæÃÂÃ¥èÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂéÃÂèäûýïüà| |
<pre> | <pre> | ||
<em:targetApplication> | <em:targetApplication> | ||
行 139: | 行 140: | ||
</em:targetApplication> | </em:targetApplication> | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥áÃÂæÃÂïçÃÂèäþÃÂæÃÂÃÂçäúÃÂ¥ÃÂ¥ÃÂäûöèæÃÂçÃÂèÃÂ¥ÃÂèÃÂ¥ÃÂêÃÂ¥ÃÂÃÂçèÃÂÃ¥üÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂéÃÂÃÂçÃÂü 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 çÃÂÃÂæÃÂÃÂçëà[http://developer.mozilla.org/en/docs/Toolkit_version_format Toolkit Version Format] æÃÂÃÂèéóçôðçÃÂÃÂæÃÂÃÂèÿðãÃÂÃÂæÃÂÃÂÃ¥ûúèÃÂðäýàèîÃÂéÃÂÃÂçïÃÂæÃÂÃÂçëàïüÃÂäûÃ¥äúÃÂèçãæÃÂÃÂæèãçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂïèâëÃÂ¥ÃÂ
ÃÂèèñçÃÂÃÂãÃÂà| |
− | + | ÃÂ¥ÃÂèÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂîçÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂæÃÂïçÃÂèäþÃÂæÃÂÃÂèÿðÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂèóÃÂæÃÂÃÂÃ¥îÃÂçþéïüÃÂæÃÂÃÂçèñäøÃÂçùüèóÃÂæÃÂÃÂ(meta-data)ïüà| |
<pre> | <pre> | ||
<!-- Optional Items --> | <!-- Optional Items --> | ||
行 154: | 行 155: | ||
</pre> | </pre> | ||
− | + | Ã¥ðñÃ¥æÃÂèèûéÃÂÃÂäøÃÂæèãïüÃÂéÃÂÃÂäúÃÂÃÂ¥ÃÂ
ÃÂçôàæÃÂïéÃÂÃÂÃ¥ÿÃÂ
èæÃÂçÃÂÃÂãÃÂÃÂ'''<em:creator>''' ÃÂ¥ÃÂ
ÃÂèèñÃÂ¥ÃÂ¥ÃÂäûöäýÃÂèÃÂÃÂ
æÃÂÃÂæÃÂÃÂèÃÂêÃ¥÷ñçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂæèãÃÂ¥ÃÂÃ¥äúúÃ¥ðñçÃÂÃ¥éÃÂÃÂæÃÂïèêðèãýäýÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂäøÃÂäøÃÂÃÂ¥ÃÂÃÂïüÃÂ<em:description> ÃÂ¥ÃÂ
ÃÂèèñæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂäøÃÂäúÃÂèêêæÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂèêêæÃÂÃÂæÃÂÃÂéáïçäúÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöçîáçÃÂÃÂÃÂ¥ÃÂáäøÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñÃ¥úÃÂäøÃÂãÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂ'''<em:homepageURL>''' ÃÂ¥ÃÂ
ÃÂèèñæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃ¥äúúÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèÃÂ¥ÃÂêèãáæÃÂþÃÂ¥ÃÂðæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂà| |
− | + | æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂéÃÂÃÂäúÃÂäøÃÂæÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂèóÃÂæÃÂÃÂÃ¥îÃÂçþéïüÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäùÃÂæÃÂÃÂèèñÃ¥äÃÂÃÂ¥ÃÂ
öäûÃÂÃÂ¥ÃÂïéÃÂøçÃÂèçÃÂÃÂéàÃÂ
çÃÂîãÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöçîáçÃÂÃÂÃÂ¥ÃÂáäøÃÂäýÿçÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂèÃÂêÃ¥÷ñçÃÂÃÂÃÂ¥ÃÂÃÂçäú(icon)ãÃÂàÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃÂ¥ÃÂ
ÃÂèèñæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂèÃÂêèèÃÂéÃÂøéàÃÂ
çÃÂÃÂäýÃÂçýîæÃÂÃÂæÃÂïãÃÂÃÂéÃÂÃÂæÃÂüãÃÂÃÂçÃÂÃÂÃ¥ðÃÂèéñèæÃÂçêÃÂãÃÂÃÂÃÂ¥ÃÂ
èéÃÂèÃÂ¥ÃÂïçÃÂèçÃÂÃÂÃÂ¥ÃÂ
ÃÂçôà(äùÃÂÃÂ¥ÃÂëÃÂ¥ÃÂÃÂÃ¥ñìæÃÂç properties )ïüÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂÃÂÃÂ¥ÃÂèMozilla Developer Center äøÃÂçÃÂÃÂæÃÂÃÂçëà[http://developer.mozilla.org/en/docs/install.rdf Installer Manifests] ãÃÂÃÂæÃÂÃÂÃ¥þÃÂäøÃÂéûÃÂèæÃÂæóèæÃÂÃÂçÃÂÃÂïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàæÃÂïäøÃÂéÃÂÃÂèæÃÂæÃÂÃÂçÃÂ
çéàÃÂÃ¥úÃÂçÃÂÃÂãÃÂÃÂäùÃÂÃ¥ðñæÃÂïèêêïüÃÂäýàÃÂ¥ÃÂïäûÃ¥åðÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂèæêÃÂæáÃÂäøÃÂäûûäýÃÂÃÂ¥ÃÂðæÃÂùïüÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂÃÂ
èæÃÂæóèæÃÂÃÂçÃÂÃÂæÃÂïïüÃÂÃ¥ðÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂæÃÂþçýîÃÂ¥ÃÂè '''<Description>''' èÃÂà'''</Description>''' äùÃÂéÃÂÃÂãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂèçãäúÃÂÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂîïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂìÃ¥ðÃÂèâëäýÿçÃÂèÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥çÃÂôæÃÂÃ¥åðÃÂäøÃÂéÃÂâçÃÂÃÂéÃÂèäûýïüÃÂèäÃÂèãýÃÂ¥ÃÂè '''install.rdf''' äøÃÂãÃÂà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 189: | 行 190: | ||
</pre> | </pre> | ||
− | == Chrome | + | == Chrome æøÃÂ
ÃÂ¥ÃÂî (Chrome Manifest) == |
− | Chrome | + | Chrome æøÃÂ
ÃÂ¥ÃÂîæÃÂï Firefox 1.5 æÃÂÃÂéÃÂÃÂÃ¥çÃÂæÃÂÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂèóÃÂæÃÂÃÂèâëèèÃÂÃ¥îÃÂÃÂ¥ÃÂèÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂùïüÃÂÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂî(installer manifest)ãÃÂÃÂÃÂ¥ÃÂàcontents.rdf ãÃÂÃÂèÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂæÃÂðçÃÂÃÂæàüÃ¥üÃÂéáïÃ¥þÃÂæÃÂôçðáÃÂ¥ÃÂîãÃÂÃÂÃÂ¥ÃÂÃÂæìáÃÂ¥ÃÂèæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂÃ¥ûúçëÃÂÃÂ¥ÃÂæÃ¥äÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂæáà'''chrome.manifest''' ãÃÂÃÂäøÃÂéÃÂâæÃÂïæêÃÂæáÃÂçõÃÂæçÃÂçÃÂÃÂèõ÷äþÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüà|
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 200: | 行 201: | ||
</pre> | </pre> | ||
− | Chrome | + | Chrome æøÃÂ
ÃÂ¥ÃÂîæÃÂïçÃÂèäþÃÂÃÂ¥ÃÂÃÂèèô Firefox ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂäþÃÂçÃÂÃÂÃ¥ðÃÂèãÃÂ(package)èÃÂÃÂèæÃÂèüÃÂ(overlay)ãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂÃ¥ûúçëÃÂäùÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂ
ÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüà|
<pre> | <pre> | ||
content myextension chrome/content/ | content myextension chrome/content/ | ||
行 206: | 行 207: | ||
locale myextension en-US chrome/locale/en-US/ | locale myextension en-US chrome/locale/en-US/ | ||
skin myextension classic/1.0 chrome/skin/</pre> | skin myextension classic/1.0 chrome/skin/</pre> | ||
− | + | èÃÂÃÂæÃÂéÃÂ¥ÃÂ
ÃÂäýÿçÃÂèçÃÂà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''' ãÃÂà| |
<pre> | <pre> | ||
content tuttoolbar chrome/content/ | content tuttoolbar chrome/content/ | ||
行 224: | 行 225: | ||
</pre> | </pre> | ||
− | + | çÃÂþÃÂ¥ÃÂèæÃÂöæçÃÂÃ¥÷òçöÃÂÃÂ¥ÃÂïäûÃ¥äúÃÂïüÃÂæÃÂÃ¥èÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂäúÃÂæÃÂÃÂèöãçÃÂÃÂäúÃÂÃÂ¥ÃÂçïüà| |
− | = | + | = çììäøÃÂçëàïüÃÂÃ¥ûúæçÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂà(Structuring the Toolbar) = |
− | Firefox | + | Firefox ÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂäýÿçÃÂèèÃÂÃÂ
äûÃÂéÃÂâéÃÂèäûýæÃÂïäýÿçÃÂè XUL æÃÂÃÂèáà(éÃÂóïüÃÂzool)ïüÃÂéÃÂÃÂæÃÂïäøÃÂçèîçÃÂèäþÃÂèèÃÂèèÃÂäýÿçÃÂèèÃÂÃÂ
äûÃÂéÃÂâçÃÂÃÂæèÃÂçäúèêÃÂèèÃÂãÃÂÃÂXUL ÃÂ¥ÃÂïäûÃ¥æÃÂóæÃÂÃÂæÃÂïäøÃÂçèî XML çÃÂÃÂèêÿÃÂ¥ÃÂóæÃÂÃÂ(æÃÂÃÂæÃÂèæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂÃÂèÃÂýçÃÂÃÂ)ïüàÃ¥îÃÂäøÃÂéÃÂÃÂæÃÂïäýÿçÃÂèéàÃÂèèÃÂÃÂ¥ÃÂ
ÃÂçôàçÃÂàXML (äùÃÂÃÂ¥ÃÂëÃÂ¥ÃÂàwidgets)ãÃÂÃÂäýÿçÃÂè XUL çÃÂÃÂÃ¥åýèÃÂÃÂïüÃÂæÃÂïÃÂ¥ÃÂàçÃÂúÃ¥îÃÂäýÿçÃÂèäúÃÂ'''ÃÂ¥ÃÂÃÂæÃÂ
ÃÂèæÃÂèüÃÂ(dynamic overlays)'''çÃÂÃÂæÃÂÃÂèáÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂèæÃÂèüÃÂæÃÂÃÂèáÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂéÃÂÃÂçÃÂüèÃÂÃÂ
'''äøÃÂéÃÂÃÂèæÃÂ'''æÃÂùèîÃÂÃÂ¥ÃÂÃÂæÃÂìäûÃÂéÃÂâçÃÂÃÂçèÃÂÃ¥üÃÂçâüçÃÂÃÂæÃÂÃÂ
æóÃÂäøÃÂïüÃÂÃÂ¥ÃÂûäÿîæÃÂùèæÃÂçêÃÂçÃÂÃÂäýÿçÃÂèèÃÂÃÂ
äûÃÂéÃÂâãÃÂÃÂÃÂ¥ÃÂèäøÃÂéÃÂÃÂæÃÂôÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥çÃÂçèÃÂÃ¥üÃÂçâüçÃÂÃÂæÃÂÃÂ
æóÃÂäøÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæóèæÃÂüèèÃÂèèÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂèÃÂÃÂäøÃÂçÃÂèæÃÂÃÂÃ¥ÿÃÂéÃÂÃÂèæÃÂéÃÂÃÂèäÃÂéÃÂÃÂçÃÂüçÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçëàçïÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂäþÃÂçÃÂÃÂçÃÂÃÂèèÃÂèèÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂçÃÂàXUL Ã¥ÿÃÂ
èæÃÂæèÃÂçäúãÃÂÃÂèèÃÂäýÃÂïüÃÂXUL ÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂÃÂ
æÃÂïçÃÂèäþÃÂÃ¥ûúæçÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂèÃÂÃÂÃ¥÷òãÃÂÃÂçÃÂúäúÃÂèîÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂäýÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂäýÿçÃÂè JavaScript ïüÃÂéÃÂÃÂéÃÂèäûýÃ¥ðÃÂÃÂ¥ÃÂèçììÃÂ¥ÃÂ
ÃÂçëàæÃÂÃÂÃÂ¥ÃÂðãÃÂà|
− | + | ÃÂ¥ÃÂè '''content''' çÃÂîéÃÂÃÂèãáïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂçÃÂú '''tuttoolbar.xul''' çÃÂÃÂæêÃÂæáÃÂãÃÂÃÂÃÂ¥ÃÂèäýàÃ¥ûúçëÃÂÃ¥åýäùÃÂÃ¥þÃÂïüÃÂçÃÂîéÃÂÃÂçÃÂÃÂçõÃÂæçÃÂæÃÂÃÂæÃÂïéÃÂÃÂæèãïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 239: | 行 240: | ||
+- tuttoolbar.xul</pre> | +- tuttoolbar.xul</pre> | ||
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂÃ¥ûúçëÃÂÃ¥åýéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂèáÃÂÃÂ¥ÃÂðéÃÂÃÂÃ¥çÃÂèèÃÂèëÃÂÃÂ¥ÃÂ
çÃ¥îùãÃÂÃÂéÃÂèèÃÂÃÂéÃÂòèáÃÂçÃÂÃÂèÃÂ
óæÃÂÃ¥ïüÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂæêÃÂæáÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùïüÃÂäøÃÂæÃÂÃ¥äøÃÂæÃÂÃÂ¥ÃÂ¥ÃÂðäûÃÂçôùãÃÂÃÂéÃÂÃÂæÃÂÃÂèîÃÂéÃÂÃÂçèÃÂçÃÂÃÂèõ÷äþÃÂæÃÂôçðáÃÂ¥ÃÂîïüÃÂÃÂ¥ÃÂèéÃÂÃÂçëàçïÃÂçÃÂÃÂæÃÂÃÂÃ¥þÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂæÃÂÃÂçÃÂøçÃÂöÃÂ¥ÃÂÃÂ¥ÃÂ¥ÃÂ
èãÃÂà| |
− | + | ÃÂ¥ÃÂàçÃÂú XUL ÃÂ¥ÃÂêæÃÂïäøÃÂçèî XML çÃÂÃÂèêÿÃÂ¥ÃÂóæÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥çììäøÃÂèáÃÂÃ¥ÿÃÂ
éàÃÂæÃÂïäýÿçÃÂè XML çÃÂÃÂÃ¥îãÃÂ¥ÃÂÃÂïüà| |
<pre><?xml version="1.0"?></pre> | <pre><?xml version="1.0"?></pre> | ||
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂÃ¥îãÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂïäøÃÂÃÂ¥ÃÂàXML çÃÂÃÂæêÃÂæáÃÂäùÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂèÃÂÃÂçÃÂñ '''overlay''' ÃÂ¥ÃÂ
ÃÂçôàèèÃÂèèÃÂèæÃÂèüÃÂäúÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃ¥ðÃÂæÃÂÃÂæÃÂïéÃÂÃÂæÃÂôäûýæÃÂÃÂäûöçÃÂÃÂæàùÃÂ¥ÃÂ
ÃÂçôàãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃ¥èéñèêêïüÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂ
öäûÃÂçÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃ¥ÿÃÂ
éàÃÂÃÂ¥ÃÂè <overlay> èÃÂà</overlay> äùÃÂéÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂï '''overlay''' çÃÂÃÂèõ÷äþÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂïüà| |
<pre> | <pre> | ||
<overlay id="TutTB-Overlay" | <overlay id="TutTB-Overlay" | ||
行 251: | 行 252: | ||
</overlay></pre> | </overlay></pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàæÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçïüÃÂ'''id''' èÃÂà'''xmlns''' ãÃÂÃÂéÃÂÃÂè÷àHTML éáÃÂäüüïüÃÂ'''id''' çÃÂÃÂÃÂ¥ÃÂü'''Ã¥ÿÃÂ
éàÃÂæÃÂïÃÂ¥ÃÂïäøÃÂ'''çÃÂÃÂãÃÂÃÂæÃÂôéÃÂÃÂèæÃÂçÃÂÃÂæÃÂïïüÃÂéÃÂÃÂäùÃÂÃ¥ÿÃÂ
éàÃÂæÃÂï'''æÃÂôÃÂ¥ÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂè'''ÃÂ¥ÃÂïäøÃÂçÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂéÃÂÃÂèãáæÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàçâúÃ¥îÃÂæÃÂÃÂäýÿçÃÂèçÃÂàID æÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂæÃÂùæóÃÂãÃÂÃÂäþÃÂÃ¥æÃÂïüÃÂäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥æóèæÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂäýÿçÃÂèäúà'''TutTB''' éÃÂÃÂéàÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçÃÂüäþÃÂÃ¥îÃÂçþé id Ã¥ñìæÃÂççÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂäýÿçÃÂèçìæÃÂ¥ÃÂÃÂäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñéÃÂÃÂéàÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçÃÂüïüÃÂéÃÂÃÂæÃÂÃÂäýÿ ID æÃÂïÃÂ¥ÃÂïäøÃÂçÃÂÃÂÃÂ¥ÃÂïèÃÂýæÃÂçæÃÂÃÂéëÃÂãÃÂÃÂäøæäøÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃ¥ïæéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂüæÃÂïäøÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂë overlay çÃÂÃÂÃÂ¥ÃÂÃÂçÃÂüïüÃÂæÃÂÃÂéÃÂÃÂéúüÃÂ¥ÃÂÃÂæÃÂïæÃÂùäþÿæÃÂÃÂèÿýèùäæÃÂÃÂäýÿçÃÂèçÃÂÃÂÃÂ¥ÃÂÃÂçèñæÃÂïÃÂ¥ÃÂÃÂäûÃÂéúüçÃÂèçÃÂÃÂãÃÂà| |
− | + | çììäúÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçïüÃÂ'''xmlns'''ïüÃÂçÃÂèäþÃÂæÃÂÃÂÃ¥îÃÂäýÿçÃÂèæÃÂüèæÃÂèüÃÂçÃÂÃÂÃÂ¥ÃÂýÃÂ¥ÃÂÃÂçéúéÃÂÃÂãÃÂÃÂæÃÂâçÃÂöéÃÂÃÂæÃÂï XUL æÃÂÃÂäûöïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂÃ¥îÃÂçþé XUL çÃÂÃÂÃÂ¥ÃÂýÃÂ¥ÃÂÃÂçéúéÃÂÃÂïüÃÂéÃÂÃÂæÃÂïäýàæÃÂÃÂ'''äøÃÂçÃÂô'''çÃÂèÃÂ¥ÃÂðçÃÂÃÂÃÂ¥ÃÂüãÃÂà| |
− | == | + | == Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
÷çîñèÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂà(The Toolbox and Toolbar) == |
− | + | æÃÂÃÂæÃÂÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂèéòèâëéÃÂÃÂäøÃÂÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷çîñäøÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè '''toolbox''' ÃÂ¥ÃÂ
ÃÂçôàäþÃÂæÃÂÃÂÃ¥îÃÂäøÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷çîñ(èèÃÂäýÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃ¥ÿÃÂ
éàÃÂèâëæÃÂþçýîÃÂ¥ÃÂè '''overlay''' äùÃÂéÃÂÃÂãÃÂÃÂ)ïüà| |
<pre> | <pre> | ||
<toolbox id="navigator-toolbox"> | <toolbox id="navigator-toolbox"> | ||
</toolbox></pre> | </toolbox></pre> | ||
− | + | æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂéÃÂÃÂÃÂ¥ÃÂàid Ã¥ñìæÃÂçæÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂüïüÃÂ'''navigator-toolbox''' ãÃÂàéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂüèáèçäúçÃÂú Firefox èæÃÂçêÃÂäøÃÂäøûèæÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷çîñÃÂ¥ÃÂ
ÃÂçôàïüÃÂè÷ÃÂçÃÂÃÂèæýÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîÃÂ¥ÃÂÃÂãÃÂÃÂçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂ
öäûÃÂéáÃÂäüüçÃÂÃÂæÃÂçÃÂ¥ÃÂöéÃÂøéàÃÂ
äøÃÂæèããÃÂÃÂèÃÂÃÂçÃÂñæÃÂÃÂÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃÂ¥ÃÂÃ¥çÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥çâúÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂèÃÂÃÂÃÂ¥ÃÂ
öäûÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂéÃÂàæÃÂÃÂÃÂ¥ÃÂèäøÃÂèõ÷ãÃÂÃÂæÃÂÃÂÃ¥ûúèÃÂðäýàçøýæÃÂïèîÃÂäýàçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃ¥îÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷çîñäøÃÂïüÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂêèîÃÂäýàæÃÂÃÂçÃÂÃÂèõ÷äþÃÂäøÃÂèÃÂôçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂïüÃÂäùÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàÃÂ¥ÃÂè ãÃÂÃÂæêâèæÃÂ>Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂãÃÂàäøÃÂïüÃÂÃ¥ÿëéÃÂÃÂÃÂ¥ÃÂðÃ¥ðÃÂäýàçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂéÃÂñèÃÂÃÂæÃÂÃÂæÃÂïéáïçäúãÃÂà| |
− | + | èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæóèæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂÃÂÃÂ¥ÃÂð '''toolbar''' ÃÂ¥ÃÂ
ÃÂçôàïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàæÃÂþÃÂ¥ÃÂè '''toolbox''' äùÃÂäøÃÂãÃÂÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüà| |
<pre> | <pre> | ||
<toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" | <toolbar id="TutTB-Toolbar" toolbarname="Tutorial Toolbar" accesskey="T" | ||
行 271: | 行 272: | ||
</toolbar></pre> | </toolbar></pre> | ||
− | + | èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàçÃÂÃÂÃ¥ñìæÃÂçïüà| |
− | * '''toolbarname''' - | + | * '''toolbarname''' - éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂçèñ(éÃÂÃÂæÃÂÃÂæÃÂïäýàÃÂ¥ÃÂèãÃÂÃÂæêâèæÃÂ>Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂãÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂ)ãÃÂà|
− | * '''accesskey''' - | + | * '''accesskey''' - çõæéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂæïÃÂïüÃÂçÃÂèäþÃÂçÃÂöäýÃÂÃ¥ÿëéÃÂÃÂéÃÂõäýÿçÃÂèãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂèÃ¥äçÃ¥ïëçÃÂàT ãÃÂÃÂéÃÂÃÂçÃÂöéÃÂÃÂæÃÂïéÃÂÃÂÃ¥ÿÃÂ
èæÃÂçÃÂÃÂÃ¥ñìæÃÂçïüÃÂéÃÂÃÂæÃÂïÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàäýÿçÃÂèÃ¥îÃÂïüÃÂéÃÂÃÂèÃÂýèîÃÂäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂêèæÃÂçÃÂèÃ¥ÿëéÃÂÃÂéÃÂõÃ¥ðñèÃÂýéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂÃÂäýàçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂãÃÂà|
− | * '''class''' - | + | * '''class''' - çÃÂúÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂçÃÂùÃ¥îÃÂçÃÂÃÂæèãÃ¥üÃÂéáÃÂÃÂ¥ÃÂÃ¥ãÃÂÃÂéàÃÂèèÃÂÃÂ¥ÃÂü '''chromeclass-toolbar''' æÃÂïçÃÂèäþÃÂèæÃÂçïÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂéáïçäúæèáÃ¥üÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃ¥ïüÃÂÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðïüÃÂéÃÂÃÂæÃÂïÃ¥ûúèÃÂðäýÿçÃÂèçÃÂÃÂéÃÂÃÂÃ¥ÿÃÂ
èæÃÂÃ¥ñìæÃÂçãÃÂà|
− | * '''context''' - | + | * '''context''' - æÃÂÃÂÃ¥îÃÂçÃÂöÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂóéÃÂõæÃÂÃÂïüÃÂæÃÂÃÂéáïçäúçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂî(context menu)ãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥æÃÂÃÂäþÃÂäýàçÃÂÃÂéÃÂøÃÂ¥ÃÂî ID ÃÂ¥ÃÂüïüÃÂæÃÂÃÂæÃÂïäýÿçÃÂè '''toolbar-context-menu''' äþÃÂÃ¥ðÃÂéÃÂøÃÂ¥ÃÂîæÃÂþçýîÃÂ¥ÃÂèãÃÂÃÂæêâèæà> Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂãÃÂÃÂãÃÂà|
− | * '''hidden''' - | + | * '''hidden''' - æÃÂÃÂÃ¥îÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂïÃÂ¥ÃÂæéÃÂñèÃÂÃÂãÃÂÃÂéàÃÂèèÃÂçÃÂÃÂæÃÂÃÂ
æóÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂèîÃÂäýÿçÃÂèèÃÂÃÂ
çÃÂÃÂèæÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥èèÃÂÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüçÃÂú false (çÃÂøÃÂ¥ÃÂÃÂçÃÂú ture )ãÃÂà|
− | * '''persist''' - This attribute is a space separated list of attributes that should persist across browser sessions. | + | * '''persist''' - This attribute is a space separated list of attributes that should persist across browser sessions. ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂäýÿçÃÂè hidden ïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂèèô Firefox ÃÂ¥ÃÂè sessions èèÃÂäýÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂñèÃÂÃÂçÃÂÃÂæÃÂ
ÃÂãÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃ¥æÃÂæÃÂÃÂäýàçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæòÃÂæÃÂÃÂäýÿçÃÂè id Ã¥ñìæÃÂçïüÃÂÃÂ¥ÃÂàpersist Ã¥ñìæÃÂçäøÃÂæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂèïüÃÂæÃÂÃÂäûÃ¥èæÃÂçâúÃ¥îÃÂäýàæÃÂÃÂçÃÂúäýàçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îàid ÃÂ¥ÃÂ
ÃÂçôàãÃÂà|
− | + | äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet [http://xulplanet.com/references/elemref/ref_toolbar.html toolbar element's attributes] çÃÂÃÂÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃ¥ûúçëÃÂÃ¥åýçÃÂÃÂèæÃÂèüÃÂæêÃÂæáÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xul-a.txt View XUL Overlay Revision 1]]ïüà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 299: | 行 300: | ||
</overlay></pre> | </overlay></pre> | ||
− | == | + | == Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Toolbar Buttons) == |
− | + | ÃÂ¥ÃÂè Firefox äøÃÂïüÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂÃÂäøÃÂçèîïüÃÂäøÃÂèÃÂìãÃÂÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂéÃÂÃÂäúÃÂéÃÂýæÃÂïçÃÂè '''toolbarbutton''' äþÃÂÃ¥ûúçëÃÂçÃÂÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃ¥çÃÂÃÂçÃÂÃÂãÃÂÃÂèèÃÂäýÃÂïüÃÂéÃÂÃÂäúÃÂÃÂ¥ÃÂ
ÃÂçôàÃ¥ÿÃÂ
éàÃÂæÃÂþÃÂ¥ÃÂè '''toolbar''' ÃÂ¥ÃÂ
ÃÂçôàäùÃÂäøÃÂãÃÂà| |
− | === | + | === äøÃÂèÃÂìæÃÂÃÂéÃÂà(Normal Buttons) === |
− | + | éÃÂÃÂæÃÂïçÃÂèäþÃÂÃ¥ûúçëÃÂäøÃÂèÃÂìçÃÂÃÂæÃÂÃÂéÃÂÃÂïüà| |
<pre> | <pre> | ||
<toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" | <toolbarbutton id="TutTB-Web-Button" tooltiptext="Search the Web" | ||
label="Web Search" oncommand="TutTB_Search(event, 'web')" /></pre> | label="Web Search" oncommand="TutTB_Search(event, 'web')" /></pre> | ||
− | + | Ã¥îÃÂæÃÂÃÂäùÃÂÃ¥þÃÂïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàçÃÂÃÂÃ¥ñìæÃÂçïüà| |
− | * '''tooltiptext''' - | + | * '''tooltiptext''' - çÃÂöæûÃÂéüàççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂéÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþçÃÂÃÂèêêæÃÂÃÂãÃÂà|
− | * '''label''' - | + | * '''label''' - Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂéáïçäúçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂà|
− | * '''oncommand''' - | + | * '''oncommand''' - çÃÂö '''oncommand''' äúÃÂäûöèçøçÃÂüæÃÂÃÂ(æÃÂÃÂäøÃÂæÃÂÃÂéÃÂÃÂ)ïüÃÂäýàæÃÂÃÂæÃÂÃÂÃ¥îÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂäýÿçÃÂè '''TutTB_Search()'''ÃÂ¥ÃÂýÃ¥üÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂèçììÃÂ¥ÃÂ
ÃÂçëàèéóçôðèêêæÃÂÃÂãÃÂà|
− | + | äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet [http://xulplanet.com/references/elemref/ref_toolbarbutton.html toolbarbutton element's attributes] æÃÂþÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂà| |
− | === | + | === éÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂà(Menu Buttons) === |
− | + | çÃÂöéûÃÂæÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîãÃÂàÃÂ¥ÃÂÃÂçîáéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂæèÃÂèèÃÂéáÃÂäüüäøÃÂèÃÂìæÃÂÃÂéÃÂÃÂæèÃÂèèÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂïÃ¥ÿÃÂ
éàÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ '''menupopup''' ÃÂ¥ÃÂ
ÃÂçôàïüÃÂèîÃÂéÃÂøÃÂ¥ÃÂîäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂóèæÃÂçÃÂÃÂæèãÃÂ¥ÃÂÃÂÃÂ¥ÃÂúçÃÂþãÃÂÃÂçÃÂúäúÃÂçðáæýÃÂéûÃÂïüÃÂäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂÃÂ¥ÃÂêÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîãÃÂà| |
<pre> | <pre> | ||
<toolbarbutton id="TutTB-MainMenu" type="menu" | <toolbarbutton id="TutTB-MainMenu" type="menu" | ||
行 337: | 行 338: | ||
</toolbarbutton></pre> | </toolbarbutton></pre> | ||
− | '''toolbarbutton''' | + | '''toolbarbutton''' æÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂèæÃÂæóèæÃÂÃÂçÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂãÃÂÃÂçììäøÃÂïüÃÂ'''type''' Ã¥ñìæÃÂçæÃÂÃÂÃ¥îÃÂäúàmenu çÃÂÃÂÃÂ¥ÃÂüïüÃÂèêêæÃÂÃÂäúÃÂéÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂïüÃÂèÃÂÃÂäøÃÂæÃÂïäøÃÂèÃÂìæÃÂÃÂéÃÂÃÂãÃÂÃÂçììäúÃÂïüÃÂäýàæÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂèãáéÃÂâæòÃÂæÃÂà'''oncommand''' Ã¥ñìæÃÂçãÃÂÃÂÃÂ¥ÃÂàçÃÂúéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂïäøÃÂçÃÂîçÃÂÃÂæÃÂïçÃÂúäúÃÂéáïçäúè÷óÃÂ¥ÃÂúÃ¥üÃÂéÃÂøÃÂ¥ÃÂîïüÃÂäøæäøÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂ÷èáÃÂäûûäýÃÂçèÃÂÃ¥üÃÂçâüïüÃÂèÃÂÃÂéáïçäúéÃÂøÃÂ¥ÃÂîçÃÂÃÂÃÂ¥ÃÂÃÂäýÃÂæÃÂÃÂçÃÂñ Firefox èÃÂêÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂãÃÂà|
− | + | äùÃÂèëÃÂæóèæÃÂÃÂÃÂ¥ÃÂð '''menupopup''' ïüÃÂ'''menuitem''' ïüÃÂ'''menuseparator''' éÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàãÃÂÃÂ'''menupopup''' æÃÂÃÂæÃÂÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîçÃÂÃÂÃ¥îùÃÂ¥ÃÂèïüÃÂçÃÂèäþÃÂÃ¥ûúçëÃÂèÃÂÃÂéáïçäúéÃÂøÃÂ¥ÃÂîãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂèãáïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàæòÃÂæÃÂÃÂÃ¥ñìæÃÂçãÃÂÃÂÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðïüÃÂ'''menuseparator''' äùÃÂÃ¥þÃÂçðáÃÂ¥ÃÂîïüÃÂÃÂ¥ÃÂèäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂþçýîæðôÃ¥ùóÃÂ¥ÃÂÃÂéÃÂÃÂç÷ÃÂïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîãÃÂà| |
− | '''menuitem''' | + | '''menuitem''' çèÃÂÃ¥þîæÃÂÃÂéûÃÂèäÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îÃÂçÃÂÃÂÃ¥ñìæÃÂçïüà|
− | * '''label''' - | + | * '''label''' - æÃÂÃÂÃ¥îÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂà|
− | * '''tooltiptext''' - | + | * '''tooltiptext''' - éÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçÃ¥ðñÃÂ¥ÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂè '''toolbarbutton''' çÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂïüÃÂäýÃÂæÃÂïæÃÂÃÂäøÃÂéûÃÂèæÃÂèÃÂæÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂçÃÂñæÃÂü Firefox çÃÂàbug ([https://bugzilla.mozilla.org/show_bug.cgi?id=147670 bug #147670])ïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçæÃÂïÃ¥ÿÃÂ
èæÃÂçÃÂÃÂãÃÂÃÂÃ¥æÃÂæÃÂÃÂäýàæñúÃ¥îÃÂÃ¥þà'''menuitem''' äøÃÂÃÂ¥ÃÂêæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçïüÃÂçÃÂöäýÿçÃÂèèÃÂÃÂ
Ã¥ðÃÂæûÃÂéüàççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîæÃÂÃÂïüÃÂæÃÂÃÂçÃÂÃÂäøÃÂÃÂ¥ÃÂðæÃÂÃÂçäúèêêæÃÂÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂÃÂéáïçäúÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
־ÃÂÃÂçäúïüÃÂéÃÂÃÂçÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂäûääúúäøÃÂæûÿæÃÂÃÂçÃÂÃÂãÃÂÃÂçÃÂùèÃÂòãÃÂÃÂïüà|
− | + | äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet [http://xulplanet.com/references/elemref/ref_menuitem.html menuitem element's attributes] æÃÂþÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂà| |
− | === | + | === æÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂî (Button-Menu Buttons) === |
− | + | çììäøÃÂäùÃÂæÃÂïæÃÂÃÂÃ¥þÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂïäøÃÂçèîäùÃÂäøÃÂæÃÂÃÂèäÃÂéÃÂÃÂçÃÂÃÂãÃÂÃÂÃ¥ïæéÃÂÃÂäøÃÂïüÃÂçõÃÂÃÂ¥ÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
éçèîæÃÂÃÂéÃÂÃÂïüÃÂæÃÂÃÂäþÃÂÃÂ¥ÃÂïéûÃÂæÃÂÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîãÃÂà| |
− | + | ãÃÂÃÂäøÃÂäøÃÂéàÃÂãÃÂÃÂèÃÂÃÂãÃÂÃÂäøÃÂäøÃÂéàÃÂãÃÂÃÂçÃÂÃÂèæýéÃÂøÃÂ¥ÃÂîæÃÂïéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîçÃÂÃÂçïÃÂäþÃÂïüÃÂéÃÂÃÂæÃÂïéÃÂÃÂèæÃÂÃ¥ûúçëÃÂçÃÂÃÂæèÃÂèèÃÂïüà| |
<pre> | <pre> | ||
<toolbarbutton id="TutTB-Combined-Button" label="Search" | <toolbarbutton id="TutTB-Combined-Button" label="Search" | ||
行 368: | 行 369: | ||
</toolbarbutton></pre> | </toolbarbutton></pre> | ||
− | + | æÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂÃÂ¥ÃÂüÃ¥þÃÂæóèæÃÂÃÂçÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂè '''toolbarbutton''' çÃÂà'''type''' Ã¥ñìæÃÂçæÃÂÃÂÃ¥îÃÂäúÃÂÃÂ¥ÃÂü '''menu-button''' ïüÃÂèÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂæÃ¥äÃÂäøÃÂèáÃÂçèÃÂÃ¥üÃÂçâü '''oncommand''' ïüÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂèçììÃÂ¥ÃÂ
ÃÂçëàèçãéÃÂÃÂéÃÂÃÂéáÃÂÃ¥äÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüãÃÂÃÂæÃÂÃ¥èÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂéÃÂÃÂèãáæÃÂÃÂè÷ÃÂãÃÂÃÂäøÃÂèÃÂìæÃÂÃÂéÃÂÃÂãÃÂÃÂäøÃÂæèãçÃÂà'''toolbarbutton''' æÃÂà'''oncommand''' Ã¥ñìæÃÂçïüÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂèãÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂãÃÂÃÂèãáçÃÂÃÂÃ¥÷âçÃÂÃÂÃÂ¥ÃÂ
ÃÂçôà'''menupopup''' èÃÂà'''menuitem''' ãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂèëÃÂÃ¥îÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüçÃÂÃÂæèãÃÂ¥ÃÂÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xul-b.txt View XUL Overlay Revision 2]]ïüà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 417: | 行 418: | ||
</overlay></pre> | </overlay></pre> | ||
− | == | + | == äøÃÂæÃÂÃÂÃ¥üÃÂç÷èèüïÃÂ¥ÃÂà(Drop-Down Edit Box) == |
− | + | äøÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥çÃÂÃÂæÃÂïäøÃÂæÃÂÃÂÃ¥üÃÂç÷èèüïÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂïçÃÂè '''menulist''' äþÃÂÃ¥ûúçëÃÂçÃÂÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüïüà| |
<pre> | <pre> | ||
<toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> | <toolbaritem id="TutTB-SearchTerms-TBItem" persist="width"> | ||
行 429: | 行 430: | ||
</toolbaritem></pre> | </toolbaritem></pre> | ||
− | + | æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂà'''menulist''' æÃÂþÃÂ¥ÃÂè '''toolbaritem''' äùÃÂäøÃÂãÃÂÃÂäûûäýÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂè '''toolbar''' çÃÂÃÂéàÃÂ
çÃÂîéÃÂýäøÃÂæÃÂïÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂÃÂ¥ÃÂè '''toolbaritem''' èãáéàÃÂçÃÂÃÂæÃÂÃÂæÃÂïãÃÂÃÂäùÃÂèëÃÂæóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂú '''toolbaritem''' æÃÂÃÂÃ¥îÃÂäúà'''id''' ïüÃÂäøÃÂèèÃÂÃ¥îÃÂäúÃÂÃ¥ïìÃ¥úæ(èÃÂÃÂçÃÂñÃÂ¥ÃÂéçÃÂèäúà'''persist''' Ã¥ñìæÃÂç)ãÃÂà| |
− | '''menulist''' | + | '''menulist''' æÃÂÃÂæÃÂïçÃÂÃÂæÃÂãçÃÂèäþÃÂÃ¥ûúçëÃÂäøÃÂæÃÂÃÂÃ¥üÃÂç÷èèüïÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂæÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃÂ¥ÃÂúçÃÂþçÃÂÃÂæÃÂðÃ¥ñìæÃÂçïüà|
− | * '''editable''' - | + | * '''editable''' - çÃÂöèèÃÂÃ¥îÃÂçÃÂú true æÃÂÃÂïüÃÂäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèç÷èèüïÃÂ¥ÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂà|
− | * '''flex''' - | + | * '''flex''' - äýÿéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàæÃÂïÃÂ¥ÃÂïèîÃÂÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂæÃÂôæÃÂøÃÂ¥ÃÂüïüÃÂçÃÂøÃ¥ðÃÂæÃÂüÃÂ¥ÃÂ
öäûÃÂÃÂ¥ÃÂïèîÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàïüÃÂæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂ
öÃ¥äçÃ¥ðÃÂãÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂü 2 äûãèáèèÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂü 1 çÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂÃ¥ïìïüÃÂ0 ÃÂ¥ÃÂÃÂæÃÂïäøÃÂèÃÂýèîÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂúÃ¥îÃÂÃ¥ïìÃ¥úæãÃÂà|
− | * '''minwidth''' - | + | * '''minwidth''' - æÃÂÃÂÃ¥ðÃÂÃ¥ïìÃ¥úæïüÃÂÃÂ¥ÃÂîäýÃÂçÃÂúÃÂ¥ÃÂÃÂçôàãÃÂà|
− | * '''width''' - | + | * '''width''' - ÃÂ¥ÃÂÃÂÃ¥çÃÂÃ¥ïìÃ¥úæïüÃÂÃÂ¥ÃÂîäýÃÂçÃÂúÃÂ¥ÃÂÃÂçôàãÃÂà|
− | * '''onkeypress''' - | + | * '''onkeypress''' - çÃÂöäýÿçÃÂèèÃÂÃÂ
èüøÃÂ¥ÃÂ
Ã¥æÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüãÃÂà|
− | + | äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet [http://xulplanet.com/references/elemref/ref_menulist.html menulist element's attributes] çÃÂÃÂÃÂ¥ÃÂðÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂà| |
− | + | è÷ÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäùÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂãÃÂÃÂäøÃÂæèãïüÃÂÃÂ¥ÃÂè '''menulist''' èãáçÃÂà'''menupopup''' ÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúàmenuitem ÃÂ¥ÃÂ
ÃÂçôàãÃÂÃÂ'''onpopupshowing''' éÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂäûöæÃÂÃÂÃÂ¥ÃÂèç÷èèüïÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîéáïçäúÃÂ¥ÃÂÃÂèçøçÃÂüïüÃÂÃÂ¥ÃÂ
öäøÃÂæÃÂÃÂÃ¥îÃÂäøÃÂÃÂ¥ÃÂÃÂèÃÂýÃÂ¥ÃÂÃÂæÃÂ
ÃÂÃ¥ïëÃÂ¥ÃÂ
Ã¥éÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçèÃÂÃ¥þÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäýàäùÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥éÃÂÃÂæÃÂ
ÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîïüÃÂéÃÂÃÂçèÃÂè÷ÃÂãÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂéÃÂÃÂãÃÂÃÂæÃÂïäøÃÂæèãçÃÂÃÂãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥÷òçöÃÂèîÃÂÃ¥þÃÂæÃÂôÃÂ¥ÃÂ
÷éëÃÂäøÃÂéûÃÂäúÃÂïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâü[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xul-c.txt View XUL Overlay Revision 3]]ïüà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 498: | 行 499: | ||
</overlay></pre> | </overlay></pre> | ||
− | == | + | == ÃÂ¥ÃÂïèêÿæÃÂôçÃÂÃÂççûéçÃÂæèÃÂèèà(Resizing Gripper) == |
− | + | éÃÂÃÂèèÃÂÃ¥þÃÂäùÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëÃÂ¥ÃÂè '''menulist''' äøà'''toolbaritem''' ÃÂ¥ÃÂ
ÃÂçôàæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂà'''persist''' Ã¥ñìæÃÂçÃÂ¥ÃÂÃÂïüÃÂèèÃÂÃ¥îÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäýÿçÃÂèæÃÂÃÂéÃÂÃÂïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂòÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥ïìÃ¥úæãÃÂÃÂçÃÂúäúÃÂèîÃÂäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂïäûÃ¥æÃÂùèîÃÂÃ¥ïìÃ¥úæïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂæÃÂÃÂäþà'''ççûéçÃÂæèÃÂèèÃÂ''' ãÃÂÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂéÃÂÃÂäûöäúÃÂçÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàæÃÂï '''splitter''' ïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüïüà| |
<pre> | <pre> | ||
<splitter id="TutTB-ResizeSplitter" state="open" collapse="none" | <splitter id="TutTB-ResizeSplitter" state="open" collapse="none" | ||
行 508: | 行 509: | ||
</splitter></pre> | </splitter></pre> | ||
− | + | éÃÂÃÂæÃÂï '''splitter''' çÃÂÃÂÃ¥ñìæÃÂçïüà| |
− | * '''state''' - | + | * '''state''' - æÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòæèÃÂèèÃÂæÃÂïÃÂ¥ÃÂææÃÂúçÃÂÃÂ(éÃÂñèÃÂÃÂ)ÃÂ¥ÃÂ
çÃ¥îùïüàopen ÃÂ¥ÃÂüæÃÂÃÂÃ¥îÃÂäøÃÂçîáæÃÂïÃÂ¥ÃÂææÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùçÃÂÃÂéáïçäúãÃÂà|
− | * '''collapse''' - | + | * '''collapse''' - æñúÃ¥îÃÂÃÂ¥ÃÂêéÃÂÃÂçÃÂàsplitter èâëéÃÂñèÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè none ïüÃÂäøÃÂèîÃÂäûûäýÃÂäøÃÂéÃÂÃÂçÃÂàsplitter èâëéÃÂñèÃÂÃÂãÃÂà|
− | * '''resizebefore''' - | + | * '''resizebefore''' - çÃÂö splitter æÃÂùèîÃÂæÃÂÃÂïüÃÂæÃÂÃÂÃ¥îàsplitter Ã¥÷æéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂêÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃ¥ÿÃÂ
éàÃÂèâëéÃÂÃÂæÃÂðèêÿæÃÂôãÃÂÃÂçÃÂö splitter ççûÃÂ¥ÃÂÃÂæÃÂÃÂïüÃÂäýÿçÃÂè closest äþÃÂéÃÂÃÂæÃÂðèêÿæÃÂôæÃÂÃÂéÃÂàèÿàsplitter Ã¥÷æéÃÂÃÂçÃÂÃÂç÷èèüïÃÂ¥ÃÂÃÂãÃÂà|
− | * '''resizeafter''' - | + | * '''resizeafter''' - çÃÂö splitter æÃÂùèîÃÂæÃÂÃÂïüÃÂæÃÂÃÂÃ¥îàsplitter ÃÂ¥ÃÂóéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂêÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàÃ¥ÿÃÂ
éàÃÂèâëéÃÂÃÂæÃÂðèêÿæÃÂôãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè farthest äþÃÂéÃÂÃÂæÃÂðèêÿæÃÂôæÃÂÃÂÃÂ¥ÃÂóéÃÂÃÂçÃÂÃÂÃ¥ýÃÂæÃÂççéúéÃÂÃÂãÃÂà|
− | vbox | + | vbox æÃÂïçÃÂèäþÃÂèèÃÂÃ¥îÃÂæèãÃ¥üÃÂçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂèçììäúÃÂçëàèèÃÂèëÃÂéÃÂâæÃÂÿæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂéûÃÂãÃÂà|
− | + | äýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè XUL Planet [http://xulplanet.com/references/elemref/ref_splitter.html splitter element's attributes] çÃÂÃÂÃÂ¥ÃÂðæÃÂôÃ¥îÃÂæÃÂôçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂæÃÂÃÂçÃÂûãÃÂà| |
− | + | èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂë '''splitter''' èÃÂà'''toolbaritem''' çÃÂÃÂèæÃÂèüÃÂçèÃÂÃ¥üÃÂçâü[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xul-d.txt View XUL Overlay Revision 4]]ïüà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 582: | 行 583: | ||
</overlay></pre> | </overlay></pre> | ||
− | + | çÃÂúäúÃÂéÃÂÿÃÂ¥ÃÂ
ÃÂççûéçÃÂæèÃÂèèÃÂèèÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçôðÃ¥þîéáïçäúÃÂ¥ÃÂÃÂéáÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéÃÂÃÂèæÃÂÃ¥ûúçëÃÂéáÃÂÃ¥äÃÂçÃÂà'''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. éÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂæèÃÂçäúæÃÂïÃ¥þÃÂçðáÃÂ¥ÃÂîçÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂæÃÂïéÃÂÃÂæèãïüà| |
<pre> | <pre> | ||
<toolbarseparator /> | <toolbarseparator /> | ||
行 590: | 行 591: | ||
<toolbarspring /></pre> | <toolbarspring /></pre> | ||
− | + | èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃ¥îÃÂæÃÂôçÃÂÃÂèæÃÂèüÃÂçïÃÂäþÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xul-e.txt View XUL Overlay Revision 5]]ïüà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 661: | 行 662: | ||
</overlay> </pre> | </overlay> </pre> | ||
− | = | + | = çììÃÂ¥ÃÂÃÂçëàïüÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂü (Dynamic Development) = |
− | ( | + | (èÃÂïèÃÂÃÂ
ïüÃÂÃ¥æÃÂæÃÂÃÂäøÃÂæÃÂóçÃÂèæÃÂäéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃ¥éÃÂÃÂæÃÂäçëàïüÃÂäøæçÃÂèçììäøÃÂçëàçÃÂÃÂæÃÂùÃ¥üÃÂæøìèéæÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂ) |
− | + | ÃÂ¥ÃÂè Firefox 1.5 äøÃÂïüÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüæÃÂïæÃÂðçÃÂÃÂæÃÂÃÂèáÃÂïüÃÂÃ¥ðÃÂéÃÂÃÂçÃÂüèÃÂÃÂ
èÃÂÃÂèèÃÂïüÃÂéÃÂÃÂæÃÂïæÃÂÃÂæÃÂÃÂçÃÂèçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂÃÂèÃÂýãÃÂÃÂéÃÂÃÂéàÃÂ
æÃÂÃÂèáÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàÃÂ¥ÃÂèéÃÂÃÂçÃÂüÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂïüÃÂÃÂ¥ÃÂóæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂÃÂ¥ÃÂðçõÃÂæÃÂÃÂãÃÂÃÂçÃÂöäýàèæÃÂæøìèéæ XUL èæÃÂèüÃÂæÃÂÃÂæÃÂï JavaScript çèÃÂÃ¥üÃÂçâüæÃÂÃÂïüÃÂäøÃÂçÃÂèæïÃÂæìáÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂðÃ¥ðÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöãÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂêçïÃÂçÃÂÃÂäúÃÂäýàçÃÂÃÂæÃÂÃÂéÃÂÃÂïüÃÂäùÃÂèîÃÂäýàèÃÂýæÃÂôÃ¥ÿëéÃÂÃÂÃÂ¥ÃÂðéÃÂäéÃÂïãÃÂà| |
− | + | éÃÂãéúüïüÃÂéÃÂÃÂéàÃÂ
çÃÂùèÃÂòæÃÂïÃ¥æÃÂäýÃÂéÃÂÃÂäýÃÂçÃÂÃÂÃÂ¥ÃÂâïüÃÂéÃÂÃÂÃ¥ðñèæÃÂæÃÂÃÂèìÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçììäúÃÂçëàÃ¥ûúçëÃÂçÃÂàchrome æøÃÂ
ÃÂ¥ÃÂîäúÃÂãÃÂÃÂçÃÂôÃÂ¥ÃÂðçÃÂþÃÂ¥ÃÂèçÃÂúæÃÂâïüÃÂæÃÂÃÂéÃÂýéÃÂÃÂæòÃÂè÷ÃÂäýàèêê chrome æøÃÂ
ÃÂ¥ÃÂîèéæäýÃÂçÃÂÃÂéúüçÃÂèéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂéÃÂÃÂÃ¥çÃÂÃ¥ûúçëÃÂçÃÂÃÂçÃÂÃÂæÃÂìÃ¥ðñæÃÂï'''çÃÂùÃÂ¥ÃÂÃÂ¥'''çÃÂúÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüèÃÂÃÂèèÃÂèèÃÂçÃÂÃÂãÃÂÃÂæÃÂÃÂèèÃÂäùÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂÃ¥ÿÃÂ
éÃÂÃÂæÃÂðÃ¥ðÃÂèãÃÂéÃÂãäûýçÃÂÃÂæÃÂìçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂäýÃÂéÃÂÃÂæÃÂïæÃÂÃÂäúÃÂæÃÂùèîÃÂéÃÂÃÂèæÃÂÃ¥îÃÂæÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂïäûÃ¥åðÃÂèãÃÂãÃÂÃÂæÃÂÃÂÃ¥ùþÃÂ¥ÃÂÃÂçÃÂèäþÃÂãÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüçÃÂÃÂæÃÂÃ¥ééÃÂïüÃÂÃÂ¥ÃÂèéÃÂãäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂèæÃÂÃÂ¥ÃÂ
ÃÂçõæäýàÃ¥ùþÃÂ¥ÃÂÃÂÃ¥ûúèÃÂðãÃÂà| |
− | == | + | == æóèæÃÂÃÂäúÃÂéàÃÂ
(A Word of Warning) == |
− | + | ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüæÃÂÃÂæÃÂÃÂæÃÂÃÂæÃÂÃÂéûÃÂÃÂ¥ÃÂñéÃÂêïüÃÂÃ¥ðäÃÂ¥ÃÂ
öæÃÂïèèÃÂèèàXUL èæÃÂèüÃÂæêÃÂæáÃÂæÃÂÃÂãÃÂÃÂæÃÂÃÂ'''Ã¥ü÷çÃÂÃÂÃ¥ûúèÃÂð'''äýàèæÃÂéÃÂÿÃÂ¥ÃÂ
ÃÂéÃÂÃÂçÃÂüÃÂ¥ÃÂ¥ÃÂäûöè÷ÃÂÃ¥ùóÃ¥øøçÃÂÃÂèæýçöòéàÃÂÃÂ¥ÃÂ
ñçÃÂèäøÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂ(profile)ãÃÂÃÂæÃÂÃÂèèÃÂäùÃÂïüÃÂ'''äýàÃ¥ÿÃÂ
éàÃÂçÃÂúäýàçÃÂÃÂéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂðçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂ'''ãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÿÃÂ¥ÃÂ
ÃÂäýàÃ¥äñÃÂ¥ÃÂûäøÃÂäúÃÂéÃÂÃÂéÃÂõçÃÂÃÂèóÃÂæÃÂÃÂïüÃÂÃ¥æÃÂïüÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥ïÃÂçâüãÃÂÃÂcookiesãÃÂÃÂæÃÂøçñäæÃÂÃÂæÃÂïÃÂ¥ÃÂ
öäûÃÂäýàäøÃÂæÃÂóéÃÂúÃ¥äñçÃÂÃÂæÃÂñèÃ¥ÿãÃÂà| |
− | + | æÃÂÃÂÃ¥øÃÂæÃÂÃÂèÃÂýÃÂ¥ÃÂÃÂÃ¥ÿë Born Geek ÃÂ¥ÃÂèçÃÂüèáèéÃÂÃÂæÃÂüÃ¥æÃÂäýÃÂÃ¥ûúçëÃÂèÃÂÃÂäýÿçÃÂèèèÃÂÃ¥îÃÂæêÃÂçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂøãÃÂÃÂÃÂ¥ÃÂèéÃÂãäùÃÂÃÂ¥ÃÂÃÂïüÃÂäýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂ
ÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂè Mozilla.org çÃÂÃÂ[http://www.mozilla.org/support/firefox/profile èèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäûö]ãÃÂÃÂÃ¥ûúçëÃÂèÃÂÃÂäýÿçÃÂèèèÃÂÃ¥îÃÂæêÃÂæÃÂïÃ¥þÃÂçðáÃÂ¥ÃÂîçÃÂÃÂïüÃÂéÃÂÃÂæÃÂÃÂéÃÂÿÃÂ¥ÃÂ
ÃÂèîÃÂäýàéàÃÂçÃÂÃÂçÃÂÃÂæÃÂÃÂ
æóÃÂçÃÂüçÃÂÃÂãÃÂà| |
− | == | + | == Ã¥æÃÂäýÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂü (How to Develop Dynamically) == |
− | + | æÃÂÃÂäøûèæÃÂçÃÂÃÂÃ¥÷Ã¥äýÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂÃÂ¥ÃÂè chrome æøÃÂ
ÃÂ¥ÃÂîÃ¥îÃÂæÃÂÃÂ(ÃÂ¥ÃÂóäýÿäýàéÃÂÃÂäøÃÂäúÃÂèçãæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂãæÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂäûÃÂéúü)ãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂçÃÂÃÂïüÃÂæÃÂïäøÃÂÃÂ¥ÃÂÃÂÃ¥ðàFirefox æÃÂÃÂÃÂ¥ÃÂÃÂçáìçâÃÂäøÃÂÃÂ¥ÃÂ¥ÃÂäûöäýÃÂçýîçÃÂÃÂæêÃÂæáÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèÃÂÃÂçÃÂñ pointer æêÃÂæáÃÂäþÃÂÃ¥îÃÂæÃÂÃÂãÃÂà| |
− | + | éæÃÂÃÂ¥ÃÂ
ÃÂïüÃÂÃÂ¥ÃÂèäýàçÃÂÃÂéÃÂûèÃÂ
æçÃÂÃÂéÃÂèäþÿäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂùïüÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂî(install manifest)äøÃÂæÃÂÃÂäýÿçÃÂèçÃÂàGUID ÃÂ¥ÃÂÃÂçèñïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè '''tuttoolbar@borngeek.com''' äýÃÂçÃÂúæêÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäøÃÂÃ¥ùøçÃÂÃÂæÃÂïïüÃÂÃÂ¥ÃÂèÃ¥þîèûÃÂèæÃÂçêÃÂçÃÂðÃ¥âÃÂèãáïüÃÂãÃÂÃÂ.comãÃÂÃÂçÃÂÃÂæêÃÂæáÃÂæÃÂïèâëçÃÂèäþÃÂçÃÂöäýÃÂÃÂ¥ÃÂ÷èáÃÂæêÃÂïüÃÂèÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂçÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥æÃÂÃÂãÃÂÃÂ.comãÃÂÃÂæÃÂÿæÃÂÃÂïüÃÂäýÃÂäùÃÂèèÃÂÃ¥þÃÂÃÂ¥ÃÂûäÿîæÃÂùÃÂ¥ÃÂèÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂîçÃÂàGUIDïüÃÂçâúäÿÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñæÃÂïäøÃÂæèãçÃÂÃÂãÃÂà| |
− | + | ÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèæÃÂèüøÃÂ¥ÃÂ
Ã¥äøÃÂèáÃÂæÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂòÃÂ¥ÃÂÃÂçÃÂÃÂçõÃÂÃ¥ðÃÂäýÃÂçýîïüÃÂäùÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂÃÂæÃÂþ '''install.rdf''' èÃÂà'''chrome.manifest''' æêÃÂæáÃÂçÃÂÃÂçÃÂîéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂçÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂè÷ïÃ¥þÃÂÃ¥æÃÂäøÃÂïüà| |
<pre>C:\Born Geek\TutToolbar</pre> | <pre>C:\Born Geek\TutToolbar</pre> | ||
− | + | äýàÃ¥ÿÃÂ
éàÃÂäýÿçÃÂèäýàèÃÂêÃ¥÷ñèèÃÂÃ¥îÃÂçÃÂÃÂè÷ïÃ¥þÃÂïüÃÂéÃÂäéÃÂÃÂäýàçÃÂÃÂè÷ïÃ¥þÃÂè÷ÃÂæÃÂÃÂçÃÂÃÂäøÃÂæèããÃÂÃÂèüøÃÂ¥ÃÂ
Ã¥åîÃÂè÷ïÃ¥þÃÂÃ¥þÃÂïüÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂæêÃÂæáÃÂãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂÃ¥ðÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðè÷ÃÂéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂ(profile)ÃÂ¥ÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂ(Ã¥æÃÂïüÃÂC:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles)ãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂ[http://www.mozilla.org/support/firefox/profile èèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäûö]æÃÂÃÂèèÃÂèëÃÂÃÂ¥ÃÂðèèÃÂÃ¥îÃÂæêÃÂçÃÂîéÃÂÃÂçÃÂÃÂäýÃÂçýîãÃÂÃÂçÃÂöäýàæÃÂþÃÂ¥ÃÂðèèÃÂÃ¥îÃÂæêÃÂçÃÂîéÃÂÃÂæÃÂÃÂïüÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàpointer æêÃÂæáÃÂççûÃÂ¥ÃÂÃÂÃÂ¥ÃÂðèéòçÃÂîéÃÂÃÂçÃÂàextensions çÃÂîéÃÂÃÂäøÃÂãÃÂÃÂéÃÂÃÂæÃÂïæÃÂÃÂçÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂïüà| |
<pre> | <pre> | ||
+- tl5wlpz3.Nightly/ | +- tl5wlpz3.Nightly/ | ||
行 693: | 行 694: | ||
+- tuttoolbar@borngeek.com | +- tuttoolbar@borngeek.com | ||
+- (... other files and folders ...)</pre> | +- (... other files and folders ...)</pre> | ||
− | + | äýàÃÂ¥ÃÂïäûÃ¥çÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂïüÃÂæÃÂÃÂäýÿçÃÂèäûÃ¥ãÃÂÃÂNightlyãÃÂÃÂçÃÂúÃÂ¥ÃÂÃÂçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂïüÃÂäþÃÂäýÃÂçÃÂúæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂãÃÂÃÂäøÃÂæÃÂæäýàæÃÂàpointer æêÃÂæáÃÂæÃÂþÃÂ¥ÃÂèéÃÂéçÃÂöçÃÂÃÂäýÃÂçýîïüÃÂéÃÂÃÂÃÂ¥ÃÂàFirefoxïüÃÂçâúÃ¥îÃÂäýàäýÿçÃÂèçÃÂÃÂæÃÂïÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂ(ÃÂ¥ÃÂÃÂæìáæÃÂÃÂéÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂæÃÂÃÂäûöæÃÂÃÂÃÂ¥ÃÂÃÂèèôäýàÃ¥æÃÂäýÃÂéÃÂÃÂæèãÃÂ¥ÃÂÃÂ)ãÃÂàÃÂ¥ÃÂðçÃÂîÃÂ¥ÃÂÃÂçÃÂúæÃÂâïüÃÂÃ¥æÃÂæÃÂÃÂäýàæïÃÂæèãéÃÂýÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂãçâúïüÃÂäýàæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðæòÃÂæÃÂÃÂéÃÂâæÃÂÿçÃÂÃÂçÃÂðèÃÂòÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂãÃÂà| |
− | == | + | == éÃÂÃÂçÃÂüéÃÂñæÃÂà(The Development Cycle) == |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüçÃÂðÃ¥âÃÂïüÃÂéÃÂãèæÃÂÃ¥æÃÂäýÃÂÃÂ¥ÃÂûÃÂ¥ÃÂéçÃÂèÃÂ¥ÃÂâïüÃÂéÃÂÃÂçèÃÂÃÂ¥ÃÂ
öÃ¥ïææÃÂïéÃÂÃÂÃ¥øøçðáÃÂ¥ÃÂîçÃÂÃÂïüà| |
− | # | + | #ç÷èèüïäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöæêÃÂæáà|
− | # | + | #éÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òæÃÂôæÃÂùæêÃÂæáÃÂæÃÂÃÂÃÂ¥ÃÂ¥ÃÂçÃÂèçÃÂÃÂèæÃÂçêÃÂïüÃÂæÃÂÃÂæÃÂïäýÿçÃÂè [http://ted.mielczarek.org/code/mozilla/extensiondev/index.html Extension Developer's Extension] çÃÂÃÂéÃÂÃÂæÃÂðæÃÂôçÃÂÃÂ('''Reload Chrome''')ãÃÂà|
− | + | æÃÂÃÂÃÂ¥ÃÂ
éäûöäúÃÂæÃÂïäýàèæÃÂçÃÂÃ¥éÃÂÃÂçÃÂÃÂïüà| |
− | * | + | *Ã¥æÃÂæÃÂÃÂäýàæÃÂùèîÃÂäúà'''chrome.manifest''' æêÃÂæáÃÂïüÃÂäýàÃ¥ÿÃÂ
éàÃÂéÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂàFirefox (éÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂÃÂ¥ÃÂêæÃÂÃÂÃÂ¥ÃÂèçèÃÂÃ¥üÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂè)ãÃÂà|
− | * | + | *Ã¥æÃÂæÃÂÃÂäýàæÃÂùèîÃÂäúà'''install.rdf''' æêÃÂæáÃÂïüÃÂäýàÃ¥ÿÃÂ
éàÃÂæÃÂùèîàpointer æêÃÂæáÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂçÃÂÃÂäÿîæÃÂùæÃÂÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂè Linux äøÃÂïüÃÂäýàÃÂ¥ÃÂêèæÃÂäýÿçÃÂè '''touch''' æÃÂÃÂäûäãÃÂÃÂèÃÂÃÂÃÂ¥ÃÂè Windows èãáÃ¥ðñæÃÂÃÂéûÃÂéÃÂãÃ¥úæïüÃÂéÃÂäéÃÂÃÂäýàÃ¥îÃÂèãÃÂäúÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂè '''touch''' æÃÂÃÂäûäçÃÂà[http://www.cygwin.com/ Cygwin] Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂÃÂÃÂ¥ÃÂïäøÃÂèæÃÂÃÂ¥ÃÂÃÂçÃÂÃÂïüÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂðçÃÂîéÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂêéÃÂäæÃÂðçÃÂîéÃÂÃÂäûÃ¥æÃÂùèîÃÂçÃÂîéÃÂÃÂçÃÂÃÂãÃÂÃÂäøÃÂäøÃÂæìáäÿîæÃÂùãÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂà|
− | + | äýàÃÂ¥ÃÂïäûÃ¥çÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäúÃÂæÃÂùäþÿçÃÂÃÂéÃÂÃÂçÃÂüèÃÂÃÂéÃÂäéÃÂïÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæÃÂüïüÃÂÃÂ¥ÃÂè 1.5 çÃÂÃÂäùÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæèÃÂæúÃÂéÃÂÃÂçèÃÂïüÃÂÃ¥ðñæÃÂïæïÃÂæìáÃÂ¥ÃÂèÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂçÃÂüéÃÂÃÂçèÃÂéÃÂýèæÃÂÃ¥ðÃÂèãÃÂæêÃÂæáÃÂãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéÃÂÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂèîÃÂÃ¥þÃÂæÃÂôæüÃÂäúîäøÃÂéûÃÂÃÂ¥ÃÂçïüà| |
− | = | + | = çììäúÃÂçëàïüÃÂéÃÂâæÃÂÿèãýäýà(Skinning the Toolbar) = |
− | + | éÃÂâæÃÂÿæÃÂïçÃÂñæèãÃ¥üÃÂæèÃÂæúÃÂèÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂæçÃÂæÃÂÃÂçÃÂÃÂãÃÂÃÂèèÃÂäýÃÂïüÃÂÃÂ¥ÃÂÃÂçîáèèÃÂèèÃÂéÃÂâæÃÂÿæÃÂïéÃÂÃÂÃ¥ÿÃÂ
èæÃÂçÃÂÃÂïüÃÂäýÃÂæÃÂïÃ¥îÃÂèÃÂýæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂÃÂèóêãÃÂÃÂçÃÂâçëÃÂäýÿçÃÂèèÃÂÃÂ
Ã¥ðÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂçììäøÃÂÃÂ¥ÃÂðèñáæÃÂïÃ¥îÃÂçÃÂÃÂÃ¥äÃÂèçÃÂïüÃÂèÃÂÃÂäøÃÂæÃÂïÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂÃÂèÃÂýãÃÂÃÂçÃÂöèÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂäýàèæúÃ¥þÃÂäýÿçÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂæèÃÂçñäèîÃÂäýàæïÃÂèüÃÂèÃÂêÃÂ¥ÃÂèïüÃÂæÃÂÃÂæÃÂïäøÃÂéÃÂÃÂèæÃÂÃ¥ûúçëÃÂÃ¥äÃÂèçÃÂïüÃÂäýàÃÂ¥ÃÂïäûÃ¥çÃÂÃ¥éÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçëàçïÃÂãÃÂà| |
− | == | + | == æÃÂôæÃÂðæêÃÂæáÃÂçõÃÂæçà(Updating the File Structure) == |
− | + | èèÃÂèèÃÂéÃÂâæÃÂÿçÃÂÃÂçììäøÃÂæÃÂÃ¥åðñæÃÂïÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂïüÃÂçÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþéÃÂÃÂæÃÂüéÃÂâæÃÂÿçÃÂÃÂæêÃÂæáÃÂãÃÂÃÂÃÂ¥ÃÂè '''chrome''' çÃÂîéÃÂÃÂäøÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂà'''skin''' çÃÂîéÃÂÃÂãÃÂÃÂæêÃÂæáÃÂçõÃÂæçÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæèãïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 727: | 行 728: | ||
+- tuttoolbar.xul | +- tuttoolbar.xul | ||
+- skin/</pre> | +- skin/</pre> | ||
− | + | çÃÂþÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþéÃÂâæÃÂÿæêÃÂæáÃÂçÃÂÃÂÃÂ¥ÃÂðæÃÂùäúÃÂïüÃÂäùÃÂÃ¥þÃÂÃ¥ÿÃÂ
éàÃÂèæÃÂÃÂ¥ÃÂè chrome èãáèèûÃÂ¥ÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂäýÃÂçýîãÃÂà| |
− | == | + | == æÃÂôæÃÂð Chrome æøÃÂ
ÃÂ¥ÃÂî (Updating the Chrome Manifest) == |
− | + | éÃÂÃÂèèÃÂÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçììäúÃÂçëàÃ¥ûúçëÃÂçÃÂàchrome æøÃÂ
ÃÂ¥ÃÂîÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥äøÃÂèáÃÂçèÃÂÃ¥üÃÂçâüïüÃÂçÃÂèäþÃÂèèûÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂâæÃÂÿãÃÂÃÂæÃÂðÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥çÃÂÃÂäýÃÂçýî(çììäøÃÂèáÃÂ)ïüà| |
<pre> | <pre> | ||
content tuttoolbar chrome/content/ | content tuttoolbar chrome/content/ | ||
overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul | overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul | ||
skin tuttoolbar classic/1.0 chrome/skin/</pre> | skin tuttoolbar classic/1.0 chrome/skin/</pre> | ||
− | + | æÃÂðÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥çÃÂÃÂéÃÂÃÂäøÃÂèáÃÂçÃÂøçÃÂöçðáÃÂ¥ÃÂîïüÃÂèÃÂÃÂäøÃÂÃÂ¥ÃÂêæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéÃÂèäûýãÃÂÃÂçììäøÃÂéÃÂèäûýïüÃÂ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''' çÃÂîéÃÂÃÂèãáïüÃÂæêÃÂæáÃÂçõÃÂæçÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂæèãïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 769: | 行 770: | ||
+- web.png</pre> | +- web.png</pre> | ||
− | == | + | == èÃÂÃÂçÃÂñäøòæÃÂÃ¥æèãÃ¥üÃÂèáèÃÂ¥ÃÂ¥ÃÂçÃÂèÃÂ¥ÃÂÃÂçÃÂà(Applying the Images with CSS) == |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂéÃÂÃÂäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèïüÃÂéÃÂâæÃÂÿçÃÂîéÃÂÃÂäùÃÂÃ¥÷òçöÃÂèèûÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂçÃÂèÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäøÃÂäúÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂèÃÂÃÂçÃÂñ CSS äþÃÂÃ¥îÃÂæÃÂÃÂãÃÂÃÂÃ¥ðñÃ¥æÃÂæÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂéÃÂÃÂÃ¥çÃÂæÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂäýàÃ¥ðàCSS äøÃÂçÃÂÃÂæÃÂÃÂïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂèÃÂàW3Schools çÃÂà[http://www.w3schools.com/css/css_intro.asp excellent CSS tutorial] ãÃÂà| |
− | + | èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂÃ¥ûúçëàCSS æêÃÂæáÃÂÃÂ¥ÃÂçïüÃÂÃÂ¥ÃÂè '''skin''' çÃÂîéÃÂÃÂäøÃÂïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂçÃÂú '''tuttoolbar.css''' çÃÂÃÂæêÃÂæáÃÂïüÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂè÷ÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþÃÂ¥ÃÂèäøÃÂèõ÷ãÃÂÃÂæêÃÂæáÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 788: | 行 789: | ||
+- web.png | +- web.png | ||
+- tuttoolbar.css</pre> | +- tuttoolbar.css</pre> | ||
− | + | ÃÂ¥ÃÂèèêêæÃÂÃÂçôðçïÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂ
ÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂæèãÃ¥üÃÂèáèçÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùïüà| |
<pre> | <pre> | ||
#TutTB-MainMenu { | #TutTB-MainMenu { | ||
行 821: | 行 822: | ||
border: none !important; | border: none !important; | ||
}</pre> | }</pre> | ||
− | + | çììäøÃÂéàÃÂ
èæÃÂÃÂ¥ÃÂÃÂæÃÂïæÃÂÃÂÃ¥îÃÂèéòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçõæãÃÂÃÂäøûèæÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂèãÃÂÃÂÃÂ¥ÃÂÃÂéáçäøÃÂäøÃÂçììäøÃÂçëàïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçõæäúÃÂèéòæÃÂÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂàID ÃÂ¥ÃÂüïüÃÂ'''TutTB-MainMenu'''ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂèèéòÃÂ¥ÃÂüäþÃÂèèÃÂÃ¥îÃÂæÃÂÃÂéÃÂÃÂéáïçäúçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèÃÂ¥ÃÂÃÂéÃÂâçÃÂÃÂäúÃÂèÃÂÃÂ(#)æÃÂï '''ID éÃÂøÃÂ¥ÃÂÃÂÃÂ¥ÃÂè'''(ID selector)ïüÃÂäùÃÂÃ¥ðñæÃÂïçÃÂèäþÃÂæÃÂÃÂÃ¥îàCSS ÃÂ¥ÃÂ
ÃÂçôàèæÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂùÃ¥îÃÂèÃÂÃÂÃÂ¥ÃÂÃÂ¥ÃÂ¥ÃÂüãÃÂÃÂÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè CSS Ã¥ñìæÃÂççÃÂà'''list-style-image''' äþÃÂæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂæóèæÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂèçÃÂÃÂæÃÂï chrome è÷ïÃ¥þÃÂïüÃÂäùÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂ¥ÃÂäûöæêÃÂæáÃÂçõÃÂæçÃÂäøÃÂçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂè÷ïÃ¥þÃÂïüÃÂÃ¥øøçÃÂèçÃÂÃÂæàüÃ¥üÃÂÃ¥æÃÂäøÃÂïüà| |
<pre> | <pre> | ||
chrome://<packagename>/skin/<image_file_name></pre> | chrome://<packagename>/skin/<image_file_name></pre> | ||
− | + | ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçïÃÂäþÃÂèãáïüÃÂÃ¥ðÃÂèãÃÂÃÂ¥ÃÂÃÂçèñ(package name)æÃÂï '''tuttoolbar'''ïüÃÂèÃÂÃÂäøûèæÃÂéÃÂøÃÂ¥ÃÂîäýÿçÃÂèçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçèñçÃÂú '''main.png'''ãÃÂÃÂäýàÃÂ¥ÃÂïäûÃ¥çÃÂÃÂÃÂ¥ÃÂðïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂèéáÃÂäüüçÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂèçöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîäùÃÂæÃÂïäøÃÂæèããÃÂÃÂThere's one caveat to handling menu item icons, however. ÃÂ¥ÃÂÃÂæÃÂóäøÃÂäøÃÂïüÃÂÃÂ¥ÃÂèçöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂéÃÂøÃÂ¥ÃÂîäøÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂúéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîäýÿçÃÂèäúÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂùÃÂ¥ÃÂÃ¥çÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂ¥ÃÂ¥ÃÂüïüÃÂ'''menuitem-iconic'''ïüÃÂéÃÂÃÂæÃÂï Firefox ÃÂ¥ÃÂ
çÃ¥ûúçÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂçäúæÃÂïæÃÂôäýÿçÃÂèÃ¥îÃÂçÃÂÃÂæïÃÂÃÂ¥ÃÂÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîãÃÂà| |
− | + | æÃÂóÃ¥ÿÃÂ
äýàäùÃÂæóèæÃÂÃÂÃÂ¥ÃÂðäúÃÂéÃÂÃÂÃÂ¥ÃÂÃÂçöÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂçÃÂùÃ¥îÃÂèæÃÂÃÂ¥ÃÂÃÂïüà| |
<pre> | <pre> | ||
#TutTB-Combined-Button > .toolbarbutton-menubutton-button { | #TutTB-Combined-Button > .toolbarbutton-menubutton-button { | ||
-moz-box-orient: horizontal; | -moz-box-orient: horizontal; | ||
}</pre> | }</pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùÃÂ¥ÃÂÃ¥çÃÂà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)ÃÂ¥ÃÂ
ÃÂçôàäùÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäøÃÂéÃÂâïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúèæÃÂèüÃÂæêÃÂæáÃÂçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ùþèáÃÂéÃÂÃÂèæÃÂæÃÂôÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðæÃÂùïüà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 849: | 行 850: | ||
(... rest of XUL overlay file ...)</pre> | (... rest of XUL overlay file ...)</pre> | ||
− | + | Ã¥ðñÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèæèãÃ¥üÃÂèáèäøÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂæèãïüÃÂchrome è÷ïÃ¥þÃÂèâëçÃÂèäþÃÂæÃÂÃÂÃ¥îÃÂäýÃÂçýîãÃÂÃÂèÃÂà'''type''' Ã¥ñìæÃÂçÃÂ¥ÃÂêæÃÂïæÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂï CSS çÃÂÃÂæêÃÂæáÃÂãÃÂÃÂçÃÂþÃÂ¥ÃÂèèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂèæÃÂèüÃÂæêÃÂæáÃÂÃÂ¥ÃÂèÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥éÃÂÃÂäøÃÂèáÃÂÃ¥þÃÂçÃÂÃÂÃ¥îÃÂæÃÂôÃÂ¥ÃÂ
çÃ¥îù[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xul-f.txt View XUL Overlay Revision 6]]ïüà| |
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> | ||
行 922: | 行 923: | ||
</overlay> | </overlay> | ||
</pre> | </pre> | ||
− | + | ÃÂ¥ÃÂÃ¥åÿÃÂèèÃÂèæÃÂæøìèéæïüÃÂçÃÂè[http://wiki.moztw.org/index.php/%E5%A5%97%E4%BB%B6%E9%96%8B%E7%99%BC%E6%8C%87%E5%8D%97_-_Googlebar_Lite#.E7.AC.AC.E5.9B.9B.E7.AB.A0.EF.BC.9A.E5.8B.95.E6.85.8B.E9.96.8B.E7.99.BC_.28Dynamic_Development.29 ÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂü]çÃÂàFirefox ÃÂ¥ÃÂïæÃÂìéÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæèãÃÂ¥ÃÂÃÂãÃÂÃÂæÃÂÃ¥äøÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂçÃÂúÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæóèÃÂ¥ÃÂ
Ã¥çÃÂÃÂÃÂ¥ÃÂýãÃÂà| |
− | = | + | = çììÃÂ¥ÃÂ
ÃÂçëàïüÃÂäøûçèÃÂÃ¥üà(Scripting the Toolbar) = |
− | + | ÃÂ¥ÃÂ¥ÃÂäûöéÃÂÃÂÃ¥øøæÃÂïçÃÂè JavaScript ÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂïüÃÂéÃÂÃÂæÃÂïäøÃÂçèîçðáÃÂ¥ÃÂîæÃÂÃÂÃÂ¥ÃÂøçÃÂÃÂçèÃÂÃ¥üÃÂèêÃÂèèÃÂãÃÂÃÂäýàÃ¥ðÃÂæÃÂÃÂçÃÂüçÃÂþïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂçèÃÂÃ¥üÃÂçâüæÃÂïéÃÂÃÂÃ¥øøçðáÃÂ¥ÃÂîçÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃ¥äçéÃÂÃÂäýÿçÃÂèæÃÂÃÂäûöçÃÂéäûöæèáÃÂ¥ÃÂÃÂ(DOM)ïüÃÂéÃÂÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂçÃÂÃÂÃÂ¥ÃÂîçÃÂèçÃÂÃÂÃÂ¥ÃÂ
ÃÂçôàãÃÂà| |
− | + | ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃ¥çÃÂÃÂ¥ÃÂÃÂïüÃÂäýàèæÃÂÃÂ¥ÃÂ
ÃÂçÃÂÃ¥éÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂéÃÂÃÂéûÃÂãÃÂÃÂ'''id''' Ã¥ñìæÃÂçÃ¥ÿÃÂ
éàÃÂæÃÂïæÃÂôÃÂ¥ÃÂÃÂçÃÂÃÂèæýÃÂ¥ÃÂèÃÂ¥ÃÂïäøÃÂçÃÂÃÂïüÃÂèÃÂàJavaScript çÃÂÃÂèîÃÂæÃÂøÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂäùÃÂæÃÂïãÃÂÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèèæÃÂèüÃÂäøÃÂçÃÂÃÂJavaScript æÃÂïÃÂ¥ÃÂ
èÃÂ¥ÃÂÃÂæÃÂççÃÂÃÂïüÃÂÃÂ¥ÃÂàæÃÂäæÃÂÃÂæÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂÃÂ¥ÃÂöãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂäýÿçÃÂèè÷àXUL ÃÂ¥ÃÂ
ÃÂçôàäøÃÂæèãçÃÂÃÂæÃÂÃÂÃ¥÷çïüÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂèîÃÂæÃÂøÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçèñïüÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂúÃÂ¥ÃÂÃÂèõ÷Ã¥çÃÂÃÂ¥ÃÂÃÂçèñãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè '''TutTB_''' çÃÂöäýÃÂèõ÷Ã¥çÃÂÃÂ¥ÃÂÃÂçèñïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂæÃÂï '''TutTB_Search()'''ãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëàJavaScript æêÃÂæáÃÂãÃÂÃÂÃÂ¥ÃÂè '''content''' çÃÂîéÃÂÃÂäøÃÂïüÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂà'''tuttoolbar.js''' çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂãÃÂÃÂçÃÂîéÃÂÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüà| |
<pre> | <pre> | ||
行 949: | 行 950: | ||
</pre> | </pre> | ||
− | + | ÃÂ¥ÃÂèÃ¥ûúçëÃÂäûûäýÃÂçèÃÂÃ¥üÃÂçâüÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂ
ÃÂÃÂ¥ÃÂÃÂèèô XUL æêÃÂæáÃÂèéòÃ¥æÃÂäýÃÂäýÿçÃÂè JavaScript æêÃÂæáÃÂãÃÂà| |
− | == | + | == éÃÂãçõàXUL èÃÂàJavaScript (Tying XUL to JavaScript) == |
− | + | æÃÂÃÂÃÂ¥ÃÂÃÂçÃÂàXUL æêÃÂæáà'''tuttoolbar.xul''' éÃÂÃÂèæÃÂèâëÃÂ¥ÃÂÃÂçÃÂÃ¥çÃÂøÃ¥ðÃÂæÃÂÃÂçÃÂàJavaScript æêÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèäøÃÂéÃÂâçÃÂÃÂæÃÂÃÂèÿðïüà| |
<pre> | <pre> | ||
行 959: | 行 960: | ||
src="chrome://tuttoolbar/content/tuttoolbar.js" /> | src="chrome://tuttoolbar/content/tuttoolbar.js" /> | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂÃ¥ÿÃÂ
éàÃÂæÃÂþçýîÃÂ¥ÃÂè '''overlay''' ÃÂ¥ÃÂ
ÃÂçôàäùÃÂäøÃÂãÃÂÃÂ'''type''' Ã¥ñìæÃÂçæÃÂïæÃÂÃÂÃ¥îÃÂäýÿçÃÂè JavaScriptïüÃÂ'''src''' Ã¥ñìæÃÂçæÃÂïæÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàJavaScript æêÃÂãÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùÃ¥æÃÂäøÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xul-g.txt View XUL Overlay Revision 7]]ïüà| |
<pre> | <pre> | ||
行 1,037: | 行 1,038: | ||
</pre> | </pre> | ||
− | == | + | == çÃÂúæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàäøÃÂÃÂ¥ÃÂÃÂèÃÂý (Adding Functionality to the Buttons) == |
− | + | éÃÂÃÂèèÃÂÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂúÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂÃÂäþÃÂçÃÂà'''oncommand''' Ã¥ñìæÃÂçÃÂ¥ÃÂÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ñìæÃÂçæÃÂïæÃÂÃÂÃ¥îÃÂçèÃÂÃ¥üÃÂçâüÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂäúÃÂäûöãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäùÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂè '''onclick''' äûãæÃÂÿ '''oncommand'''ïüÃÂäýÃÂæÃÂï '''onclick''' Ã¥ðÃÂéÃÂõçÃÂäçÃÂáæÃÂÃÂïüÃÂèÃÂà'''oncommand''' ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂõçÃÂäèÃÂÃÂæûÃÂéüàçÃÂÃÂÃÂ¥ÃÂÃÂäýÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéáçäøÃÂäøÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂïüà| |
<pre> | <pre> | ||
行 1,045: | 行 1,046: | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂüÃÂ¥ÃÂë '''TutTB_Search()''' ÃÂ¥ÃÂýÃ¥üÃÂïüÃÂÃÂ¥ÃÂ
öäøÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂÃÂ¥ÃÂüïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëçÃÂÃÂäúÃÂäûö(event)ïüÃÂäûÃÂ¥ÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòéàÃÂ(web)ãÃÂà| |
− | + | çèÃÂÃ¥üÃÂçâüÃ¥æÃÂäøÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/js-a.txt View JavaScript Revision 1]]ïüà| |
<pre> | <pre> | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_Search() | + | // TutTB_Search() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂevent ÃÂ¥ÃÂÃÂæÃÂøæÃÂÃÂèçøçÃÂüÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëïüÃÂtype ÃÂ¥ÃÂÃÂæÃÂø |
− | // | + | // çÃÂúæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_Search(event, type) | function TutTB_Search(event, type) | ||
{ | { | ||
− | // | + | // Ã¥ðÃÂèæÃÂçÃÂÃÂèæýçÃÂÃÂçöòÃÂ¥ÃÂà|
var URL = ""; | var URL = ""; | ||
− | // | + | // èþèÃÂ¥ÃÂÃ¥æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïÃÂ¥ÃÂæçÃÂúçéúÃÂ¥ÃÂü |
var isEmpty = false; | var isEmpty = false; | ||
− | // | + | // èÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýà( <menulist> ÃÂ¥ÃÂ
ÃÂçôà) |
var searchTermsBox = document.getElementById("TutTB-SearchTerms"); | var searchTermsBox = document.getElementById("TutTB-SearchTerms"); | ||
− | // | + | // Ã¥þÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂÃÂäøòïüÃÂæÃÂôçÃÂÃÂÃ¥ÿÃÂ
èæÃÂçÃÂÃÂçéúçÃÂý |
− | // | + | // ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçÃÂàTutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂéÃÂÃÂäýÃÂçÃÂÃÂçôðçïà|
var searchTerms = TutTB_TrimString(searchTermsBox.value); | var searchTerms = TutTB_TrimString(searchTermsBox.value); | ||
行 1,075: | 行 1,076: | ||
searchTerms = TutTB_ConvertTermsToURI(searchTerms); | searchTerms = TutTB_ConvertTermsToURI(searchTerms); | ||
− | // | + | // éÃÂøæÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂà|
− | // | + | // Ã¥æÃÂæÃÂÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥üÃÂÃ¥ðÃÂäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂð Google çöòéàÃÂäøÃÂéÃÂéçÃÂöçÃÂÃÂÃÂ¥ÃÂðæÃÂùãÃÂà|
− | // | + | // ÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃ¥ðÃÂèüøÃÂ¥ÃÂ
Ã¥çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂà|
switch(type) | switch(type) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
case "image": | case "image": | ||
if(isEmpty) { URL = "http://images.google.com/"; } | if(isEmpty) { URL = "http://images.google.com/"; } | ||
行 1,088: | 行 1,089: | ||
− | // | + | // Ã¥ûúçëÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
case "web": | case "web": | ||
default: | default: | ||
行 1,096: | 行 1,097: | ||
} | } | ||
− | // | + | // äýÿçÃÂè TutTB_LoadURL ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýèæÃÂçêÃÂäøÃÂèüÃÂÃÂ¥ÃÂ
Ã¥çöòÃÂ¥ÃÂà|
TutTB_LoadURL(URL); | TutTB_LoadURL(URL); | ||
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_TrimString() | + | // TutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂäÿîÃÂ¥ÃÂêÃÂ¥ÃÂÃÂäøòçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçéúçÃÂýéÃÂèäûýïüÃÂçÃÂöÃ¥þÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂçéúçÃÂýéÃÂèäûýèýÃÂæÃÂÃÂæÃÂà|
− | // | + | // ÃÂ¥ÃÂîäøÃÂÃÂ¥ÃÂÃÂçéúçÃÂýïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂäÿîæÃÂùÃ¥þÃÂÃÂ¥ÃÂÃÂäøòãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_TrimString(string) | function TutTB_TrimString(string) | ||
{ | { | ||
− | // | + | // Ã¥æÃÂæÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂÃÂ¥ÃÂÃÂäøòçÃÂáæÃÂÃÂïüÃÂæÃÂÃÂæÃÂïæòÃÂæÃÂÃÂæÃÂñèÃ¥ÿïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçéúÃÂ¥ÃÂü |
if (!string) | if (!string) | ||
return ""; | return ""; | ||
行 1,113: | 行 1,114: | ||
string = string.replace(/\s+$/, ''); // Remove trailing whitespace | string = string.replace(/\s+$/, ''); // Remove trailing whitespace | ||
− | // | + | // Ã¥ðÃÂæÃÂÃÂæÃÂÃÂçéúçÃÂýéÃÂèäûýçÃÂèÃÂ¥ÃÂîäøÃÂçéúçÃÂýäûãæÃÂÿ |
string = string.replace(/\s+/g, ' '); | string = string.replace(/\s+/g, ' '); | ||
− | return string; // | + | return string; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂæÃÂùèîÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂü |
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_ConvertTermsToURI() | + | // TutTB_ConvertTermsToURI() ÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_ConvertTermsToURI(terms) | function TutTB_ConvertTermsToURI(terms) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂéÃÂãÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþæïÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøò |
var termArray = new Array(); | var termArray = new Array(); | ||
− | // | + | // çÃÂèçéúçÃÂýÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäøò |
termArray = terms.split(" "); | termArray = terms.split(" "); | ||
− | // | + | // çÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
var result = ""; | var result = ""; | ||
− | // | + | // ÃÂ¥ÃÂèÃÂ¥ÃÂÃÂäøòäøÃÂéÃÂÃÂèÿô |
for(var i=0; i<termArray.length; i++) | for(var i=0; i<termArray.length; i++) | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂèçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøòÃ¥þÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂèÃÂ¥ÃÂàèÃÂÃÂ(+)éÃÂÃÂéÃÂà|
if(i > 0) | if(i > 0) | ||
result += "+"; | result += "+"; | ||
− | // | + | // äýÿçÃÂè Firefox ÃÂ¥ÃÂ
çÃ¥ûúçÃÂàencodeURIComponent() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂàÃ¥ïà|
result += encodeURIComponent(termArray[i]); | result += encodeURIComponent(termArray[i]); | ||
} | } | ||
− | return result; // | + | return result; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçõÃÂæÃÂà|
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_LoadURL() | + | // TutTB_LoadURL() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäøÃÂèüÃÂÃÂ¥ÃÂ
Ã¥çÃÂùÃ¥îÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_LoadURL(url) | function TutTB_LoadURL(url) | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂèçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂçöòÃÂ¥ÃÂà|
window._content.document.location = url; | window._content.document.location = url; | ||
行 1,160: | 行 1,161: | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂäýàçÃÂàFirefox éÃÂÃÂçÃÂüçÃÂÃÂæÃÂìïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöèüøÃÂ¥ÃÂ
Ã¥æÃÂÃÂÃ¥ðÃÂçÃÂÃÂÃÂ¥ÃÂüïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂäøÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂçèÃÂÃ¥üÃÂçâüæÃÂÃÂèéòæÃÂÃÂÃÂ¥ÃÂ÷èáÃÂïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþæÃÂÃÂÃ¥ðÃÂçõÃÂæÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüçÃÂÃÂæÃÂìçâúÃ¥ïææÃÂïçÃÂøçÃÂöäþÿÃÂ¥ÃÂéçÃÂÃÂÃÂ¥ÃÂçïüà| |
− | == | + | == æÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîçÃÂÃÂæóèæÃÂÃÂäúÃÂéàÃÂ
(A Special Note About Button-Menu Buttons) == |
− | + | ÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂòÃÂ¥ÃÂ
Ã¥äøÃÂäøÃÂÃ¥üõçëàçïÃÂäùÃÂÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂäøÃÂéûÃÂéÃÂÃÂæÃÂüæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂèæÃÂæóèæÃÂÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæÃÂóäøÃÂäøÃÂïüÃÂéÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂæÃÂÃÂäþÃÂÃÂ¥ÃÂïäûÃ¥éûÃÂæÃÂÃÂçÃÂÃÂæÃÂÃÂéÃÂÃÂèÃÂÃÂÃ¥ýÃÂÃÂ¥ÃÂúÃ¥üÃÂéÃÂøÃÂ¥ÃÂî(äøûèæÃÂçïÃÂäþÃÂçÃÂúÃ¥þÃÂÃÂ¥ÃÂÃÂèÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçÃÂÃÂèæý)ãÃÂÃÂäùÃÂæÃÂóäøÃÂäøÃÂïüÃÂtoolbarbutton äûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂë oncommand çÃÂàmenuitem ÃÂ¥ÃÂ
ÃÂçôàãÃÂÃÂçÃÂöÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂäøÃÂéÃÂèÃÂ¥ÃÂÃÂèâëÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂtoolbarbutton ÃÂ¥ÃÂ
ÃÂçôàçÃÂàoncommand çèÃÂÃ¥üÃÂçâüÃ¥æÃÂäýàæÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂèâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂäýÃÂæÃÂïïüÃÂçÃÂöäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂmenuitem ÃÂ¥ÃÂ
ÃÂçôàçÃÂÃÂÃÂ¥ÃÂ
öäøÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂÃÂïüÃÂæÃÂÃÂçÃÂüçÃÂÃÂäûÃÂéúüäúÃÂïüà| |
− | + | äøÃÂÃÂ¥ÃÂêæÃÂï menuitem ÃÂ¥ÃÂ
ÃÂçôàçÃÂàoncommand äúÃÂäûöÃÂ¥ÃÂ÷èáÃÂïüÃÂtoolbarbutton ÃÂ¥ÃÂ
ÃÂçôàçÃÂÃÂäúÃÂäûöäùÃÂèâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂæÃÂÃÂäûÃÂ¥ÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂäúÃÂäûöæÃÂïÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂçîáäýàÃÂ¥ÃÂêæÃÂïæÃÂóèæÃÂÃÂ¥ÃÂ
öäøÃÂäøÃÂäûöèâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂÃÂ¥ÃÂàçÃÂú toolbarbutton äúÃÂäûöæÃÂïæÃÂÃÂÃ¥þÃÂçÃÂüçÃÂÃÂçÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥åïæéÃÂÃÂÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂæÃÂï toolbarbutton äúÃÂäûöãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃ¥èéñèêêïüÃÂmenuitem äúÃÂäûöæòÃÂæÃÂÃÂæéÃÂæÃÂÃÂÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂéÃÂãæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂæÃÂÃÂæèãèçãæñúéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂéáÃÂÃÂ¥ÃÂâïüÃÂäúÃÂÃ¥ïæäøÃÂïüÃÂæÃÂïæÃÂÃÂèþææóÃÂçÃÂÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂàmenuitem ÃÂ¥ÃÂ
ÃÂçôàïüà| |
<pre> | <pre> | ||
行 1,174: | 行 1,175: | ||
</pre> | </pre> | ||
− | + | èÃÂÃÂçÃÂñäýÿçÃÂè DOM ÃÂ¥ÃÂýÃ¥üàpreventBubble()ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥éÃÂÿÃÂ¥ÃÂ
àoncommand èâëÃÂ¥ÃÂ÷èáÃÂãÃÂÃÂçÃÂúäúÃÂéÃÂÿÃÂ¥ÃÂ
ÃÂÃ¥äÃÂéÃÂ÷Ã¥äâÃ¥äÃÂïüÃÂèèÃÂäýÃÂäøÃÂäûöäúÃÂïüÃÂçÃÂöäýàÃ¥ûúçëÃÂæÃÂÃÂéÃÂÃÂéÃÂøÃÂ¥ÃÂîæÃÂÃÂïüÃÂèèÃÂÃ¥þÃÂÃÂ¥ÃÂè menuitem ÃÂ¥ÃÂ
ÃÂçôàçÃÂàoncommand Ã¥ñìæÃÂçÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ '''event.preventBubble()'''ãÃÂà| |
− | == | + | == çÃÂúæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ÃÂ¥ÃÂÃÂèÃÂý (Adding Functionality to the Search Box) == |
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷òçöÃÂèîÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèïüÃÂæÃÂÃ¥äøÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂÃ¥ùëæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥äøÃÂäúÃÂÃÂ¥ÃÂÃÂèÃÂýãÃÂÃÂèîÃÂäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèèüøÃÂ¥ÃÂ
ÃÂ¥ÃÂ¥ÃÂÃÂäøòÃ¥þÃÂæÃÂÃÂäøÃÂãÃÂÃÂEnterãÃÂÃÂäûÃÂ¥ÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂèæÃÂæÃÂÃÂéúüÃÂ¥ÃÂÃÂÃÂ¥ÃÂâïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂèæÃÂäýÿçÃÂèçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂïüà| |
<pre> | <pre> | ||
行 1,190: | 行 1,191: | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂæìáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýÿçÃÂè onkeypress äûãæÃÂÿ oncommandãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂäûöæÃÂÃÂÃÂ¥ÃÂèäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäøÃÂæÃÂÃÂéÃÂõæÃÂÃÂèçøçÃÂüãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂçÃÂøçÃÂöçðáÃÂ¥ÃÂîçÃÂà'''TutTB_KeyHandler()'''ÃÂ¥ÃÂýÃ¥üÃÂïüà| |
<pre> | <pre> | ||
行 1,200: | 行 1,201: | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂêäøÃÂéÃÂÃÂæÃÂïèæÃÂæêâæÃÂÃ¥ãÃÂÃÂEnterãÃÂÃÂæÃÂïÃÂ¥ÃÂæèâëæÃÂÃÂäøÃÂãÃÂÃÂÃ¥æÃÂæÃÂÃÂæÃÂïïüÃÂTutTB_Search()æÃÂÃÂèâëÃÂ¥ÃÂüÃÂ¥ÃÂëãÃÂÃÂÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂäøÃÂÃÂ¥ÃÂÃÂäûûäýÃÂäúÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥æÃÂäÃÂ¥ÃÂýÃ¥üÃÂçÃÂàJavaScript æêÃÂæáÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/js-b.txt View JavaScript Revision 2]]ïüà| |
<pre> | <pre> | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_Search() | + | // TutTB_Search() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂevent ÃÂ¥ÃÂÃÂæÃÂøæÃÂÃÂèçøçÃÂüÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëïüÃÂtype ÃÂ¥ÃÂÃÂæÃÂø |
− | // | + | // çÃÂúæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_Search(event, type) | function TutTB_Search(event, type) | ||
{ | { | ||
− | // | + | // Ã¥ðÃÂèæÃÂçÃÂÃÂèæýçÃÂÃÂçöòÃÂ¥ÃÂà|
var URL = ""; | var URL = ""; | ||
− | // | + | // èþèÃÂ¥ÃÂÃ¥æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïÃÂ¥ÃÂæçÃÂúçéúÃÂ¥ÃÂü |
var isEmpty = false; | var isEmpty = false; | ||
− | // | + | // èÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýà( <menulist> ÃÂ¥ÃÂ
ÃÂçôà) |
var searchTermsBox = document.getElementById("TutTB-SearchTerms"); | var searchTermsBox = document.getElementById("TutTB-SearchTerms"); | ||
− | // | + | // Ã¥þÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂÃÂäøòïüÃÂæÃÂôçÃÂÃÂÃ¥ÿÃÂ
èæÃÂçÃÂÃÂçéúçÃÂý |
− | // | + | // ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçÃÂàTutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂéÃÂÃÂäýÃÂçÃÂÃÂçôðçïà|
var searchTerms = TutTB_TrimString(searchTermsBox.value); | var searchTerms = TutTB_TrimString(searchTermsBox.value); | ||
− | if(searchTerms.length == 0) // | + | if(searchTerms.length == 0) // æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂÃÂ¥ÃÂÃÂïüà|
− | isEmpty = true; // | + | isEmpty = true; // æÃÂïïüÃÂèèÃÂÃ¥îàisEmpty çÃÂú true |
− | else // | + | else // äøÃÂïüÃÂèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
searchTerms = TutTB_ConvertTermsToURI(searchTerms); | searchTerms = TutTB_ConvertTermsToURI(searchTerms); | ||
− | // | + | // éÃÂøæÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂà|
− | // | + | // Ã¥æÃÂæÃÂÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥üÃÂÃ¥ðÃÂäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂð Google çöòéàÃÂäøÃÂéÃÂéçÃÂöçÃÂÃÂÃÂ¥ÃÂðæÃÂùãÃÂà|
− | // | + | // ÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃ¥ðÃÂèüøÃÂ¥ÃÂ
Ã¥çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂà|
switch(type) | switch(type) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
case "image": | case "image": | ||
if(isEmpty) { URL = "http://images.google.com/"; } | if(isEmpty) { URL = "http://images.google.com/"; } | ||
行 1,241: | 行 1,242: | ||
− | // | + | // Ã¥ûúçëÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
case "web": | case "web": | ||
default: | default: | ||
行 1,249: | 行 1,250: | ||
} | } | ||
− | // | + | // äýÿçÃÂè TutTB_LoadURL ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýèæÃÂçêÃÂäøÃÂèüÃÂÃÂ¥ÃÂ
Ã¥çöòÃÂ¥ÃÂà|
TutTB_LoadURL(URL); | TutTB_LoadURL(URL); | ||
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_TrimString() | + | // TutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂäÿîÃÂ¥ÃÂêÃÂ¥ÃÂÃÂäøòçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçéúçÃÂýéÃÂèäûýïüÃÂçÃÂöÃ¥þÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂçéúçÃÂýéÃÂèäûýèýÃÂæÃÂÃÂæÃÂà|
− | // | + | // ÃÂ¥ÃÂîäøÃÂÃÂ¥ÃÂÃÂçéúçÃÂýïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂäÿîæÃÂùÃ¥þÃÂÃÂ¥ÃÂÃÂäøòãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_TrimString(string) | function TutTB_TrimString(string) | ||
{ | { | ||
− | // | + | // Ã¥æÃÂæÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂÃÂ¥ÃÂÃÂäøòçÃÂáæÃÂÃÂïüÃÂæÃÂÃÂæÃÂïæòÃÂæÃÂÃÂæÃÂñèÃ¥ÿïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçéúÃÂ¥ÃÂü |
if (!string) | if (!string) | ||
return ""; | return ""; | ||
行 1,266: | 行 1,267: | ||
string = string.replace(/\s+$/, ''); // Remove trailing whitespace | string = string.replace(/\s+$/, ''); // Remove trailing whitespace | ||
− | // | + | // Ã¥ðÃÂæÃÂÃÂæÃÂÃÂçéúçÃÂýéÃÂèäûýçÃÂèÃÂ¥ÃÂîäøÃÂçéúçÃÂýäûãæÃÂÿ |
string = string.replace(/\s+/g, ' '); | string = string.replace(/\s+/g, ' '); | ||
− | return string; // | + | return string; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂæÃÂùèîÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂü |
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_ConvertTermsToURI() | + | // TutTB_ConvertTermsToURI() ÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_ConvertTermsToURI(terms) | function TutTB_ConvertTermsToURI(terms) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂéÃÂãÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþæïÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøò |
var termArray = new Array(); | var termArray = new Array(); | ||
− | // | + | // çÃÂèçéúçÃÂýÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäøò |
termArray = terms.split(" "); | termArray = terms.split(" "); | ||
− | // | + | // çÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
var result = ""; | var result = ""; | ||
− | // | + | // ÃÂ¥ÃÂèÃÂ¥ÃÂÃÂäøòäøÃÂéÃÂÃÂèÿô |
for(var i=0; i<termArray.length; i++) | for(var i=0; i<termArray.length; i++) | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂèçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøòÃ¥þÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂèÃÂ¥ÃÂàèÃÂÃÂ(+)éÃÂÃÂéÃÂà|
if(i > 0) | if(i > 0) | ||
result += "+"; | result += "+"; | ||
− | // | + | // äýÿçÃÂè Firefox ÃÂ¥ÃÂ
çÃ¥ûúçÃÂàencodeURIComponent() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂàÃ¥ïà|
result += encodeURIComponent(termArray[i]); | result += encodeURIComponent(termArray[i]); | ||
} | } | ||
− | return result; // | + | return result; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçõÃÂæÃÂà|
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_LoadURL() | + | // TutTB_LoadURL() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäøÃÂèüÃÂÃÂ¥ÃÂ
Ã¥çÃÂùÃ¥îÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_LoadURL(url) | function TutTB_LoadURL(url) | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂèçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂçöòÃÂ¥ÃÂà|
window._content.document.location = url; | window._content.document.location = url; | ||
行 1,313: | 行 1,314: | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_KeyHandler() | + | // TutTB_KeyHandler() æêâæÃÂÃ¥ãÃÂÃÂEnterãÃÂÃÂæÃÂïÃÂ¥ÃÂæèâëèüøÃÂ¥ÃÂ
Ã¥ãÃÂÃÂæÃÂïçÃÂÃÂèéñïüÃÂÃ¥ðñÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_KeyHandler(event) | function TutTB_KeyHandler(event) | ||
{ | { | ||
− | // [ENTER] | + | // [ENTER]èâëæÃÂÃÂäøÃÂäúÃÂÃÂ¥ÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂæÃÂïïüÃÂÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðà|
if(event.keyCode == event.DOM_VK_RETURN) | if(event.keyCode == event.DOM_VK_RETURN) | ||
TutTB_Search(event, 'web'); | TutTB_Search(event, 'web'); | ||
行 1,323: | 行 1,324: | ||
</pre> | </pre> | ||
− | + | ÃÂ¥ÃÂèäøÃÂæìáïüÃÂÃÂ¥ÃÂ÷èáÃÂäýàçÃÂàFirefox éÃÂÃÂçÃÂüçÃÂÃÂæÃÂìïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂèüøÃÂ¥ÃÂ
Ã¥æÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂäøÃÂãÃÂÃÂEnterãÃÂÃÂãÃÂÃÂÃ¥ðñÃÂ¥ÃÂÃÂæÃÂïæÃÂÃÂäøÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂäøÃÂæèãïüÃÂæÃÂÃÂÃ¥ðÃÂçõÃÂæÃÂÃÂæÃÂÃÂèéòæÃÂÃÂÃÂ¥ÃÂúçÃÂþãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥÷òçöÃÂæÃÂÃÂäúÃÂçÃÂÃÂÃÂ¥ÃÂýïüà| |
− | == | + | == ÃÂ¥ÃÂÃÂæÃÂ
ÃÂçýîÃÂ¥ÃÂ
Ã¥éÃÂøÃÂ¥ÃÂî (Dynamically Populating a Menu) == |
− | + | ÃÂ¥ÃÂÃÂæÃÂ
ÃÂçÃÂÃÂÃ¥ðÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîæÃÂþçýîÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîèãáæÃÂïÃ¥þÃÂæÃÂÃÂçÃÂèçÃÂÃÂïüÃÂéÃÂÃÂÃ¥åýéÃÂÃÂÃÂ¥ÃÂÃÂçÃÂùèÃÂòæÃÂïÃ¥þÃÂÃ¥îùæÃÂÃÂÃ¥îÃÂæÃÂÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèãáïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîÃÂ¥ÃÂÃÂæÃÂ
ÃÂçÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥äøÃÂäúÃÂéàÃÂ
çÃÂîãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂçÃÂÃÂçÃÂèäþÃÂÃ¥ûúçëÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂçÃÂÃÂéÃÂèäûýïüà| |
<pre> | <pre> | ||
行 1,339: | 行 1,340: | ||
</pre> | </pre> | ||
− | + | æóèæÃÂÃÂÃÂ¥ÃÂðïüÃÂÃÂ¥ÃÂè menupopup ÃÂ¥ÃÂ
ÃÂçôàçÃÂàonpopupshowing Ã¥ñìæÃÂçãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥îàTutTB_Populate()ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèæïÃÂæìáãÃÂÃÂÃ¥ýÃÂÃÂ¥ÃÂúÃ¥üÃÂéÃÂøÃÂ¥ÃÂîãÃÂÃÂÃÂ¥ÃÂóÃ¥ðÃÂéáïçäúæÃÂÃÂèâëÃÂ¥ÃÂ÷èáÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂæÃÂÃÂÃ¥ûúçëÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâü[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/js-populate.txt View TutTB_Populate() Code]]ïüà| |
<pre> | <pre> | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_Populate() | + | // TutTB_Populate() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæìÃÂäýÃÂçÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîæÃÂþçýîÃÂ¥ÃÂÃÂæÃÂ
ÃÂçÃÂâçÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîãÃÂà|
− | // | + | // éÃÂÃÂçÃÂöéÃÂÃÂäøÃÂæÃÂïéÃÂÃÂÃ¥øøÃ¥ïæçÃÂèçÃÂÃÂïüÃÂäýÃÂæÃÂïèÃÂÃÂçÃÂñéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂøÃÂ¥ÃÂîçýîÃÂ¥ÃÂ
Ã¥çÃÂÃÂéÃÂÃÂäýÃÂæÃÂùÃ¥üÃÂãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_Populate() | function TutTB_Populate() | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîÃÂ¥ÃÂ
ÃÂçôà|
var menu = document.getElementById("TutTB-SearchTermsMenu"); | var menu = document.getElementById("TutTB-SearchTermsMenu"); | ||
− | // | + | // ççûéÃÂäÃÂ¥ÃÂèÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîçÃÂîÃÂ¥ÃÂÃÂçÃÂÃÂéàÃÂ
çÃÂî |
for(var i=menu.childNodes.length - 1; i >= 0; i--) | for(var i=menu.childNodes.length - 1; i >= 0; i--) | ||
{ | { | ||
行 1,357: | 行 1,358: | ||
} | } | ||
− | // | + | // æÃÂÃÂÃ¥îÃÂèæÃÂÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂéàÃÂ
çÃÂîæÃÂøéÃÂà|
var numItemsToAdd = 10; | var numItemsToAdd = 10; | ||
for(var i=0; i<numItemsToAdd; i++) | for(var i=0; i<numItemsToAdd; i++) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂèæÃÂÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂî |
var tempItem = document.createElement("menuitem"); | var tempItem = document.createElement("menuitem"); | ||
− | // | + | // èèÃÂÃ¥îÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîçÃÂÃÂæèÃÂçñä |
tempItem.setAttribute("label", "Dynamic Item Number " + (i+1)); | tempItem.setAttribute("label", "Dynamic Item Number " + (i+1)); | ||
− | // | + | // ÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂðÃ¥âÃÂéàÃÂ
çÃÂî |
menu.appendChild(tempItem); | menu.appendChild(tempItem); | ||
} | } | ||
行 1,374: | 行 1,375: | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçïÃÂäþÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂýäûäæïÃÂÃÂ¥ÃÂàmenuitem ÃÂ¥ÃÂ
ÃÂçôàÃÂ¥ÃÂûÃÂ¥ÃÂ÷èáÃÂéÃÂøæÃÂÃÂçÃÂÃÂæÃÂÃÂäûäãÃÂÃÂçÃÂúäúÃÂèîÃÂæïÃÂÃÂ¥ÃÂàmenuitem çÃÂÃ¥éÃÂÃÂæÃÂÃÂèéòÃÂ¥ÃÂ÷èáÃÂçÃÂÃÂæÃÂÃÂäûäïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂêèæÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ setAttribute()ÃÂ¥ÃÂýÃ¥üÃÂäþÃÂèÃÂÃÂçÃÂÃÂäúÃÂäûöÃÂ¥ÃÂÃÂÃÂ¥ÃÂ÷èáÃÂçèÃÂÃ¥üÃÂçâüãÃÂÃÂéÃÂÃÂæÃÂïèÃÂÃÂçÃÂàoncommand äúÃÂäûöçÃÂÃÂçïÃÂäþÃÂïüà| |
<pre> | <pre> | ||
行 1,380: | 行 1,381: | ||
</pre> | </pre> | ||
− | + | ÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ TutTB_Populate()ÃÂ¥ÃÂýÃ¥üÃÂÃ¥þÃÂçÃÂàJavaScript æêÃÂæáÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/js-c.txt View JavaScript Revision 3]]ïüà| |
<pre> | <pre> | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_Search() | + | // TutTB_Search() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂçÃÂúæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂevent ÃÂ¥ÃÂÃÂæÃÂøæÃÂÃÂèçøçÃÂüÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëïüÃÂtype ÃÂ¥ÃÂÃÂæÃÂø |
− | // | + | // çÃÂúæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂÃÂãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_Search(event, type) | function TutTB_Search(event, type) | ||
{ | { | ||
− | // | + | // Ã¥ðÃÂèæÃÂçÃÂÃÂèæýçÃÂÃÂçöòÃÂ¥ÃÂà|
var URL = ""; | var URL = ""; | ||
− | // | + | // èþèÃÂ¥ÃÂÃ¥æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïÃÂ¥ÃÂæçÃÂúçéúÃÂ¥ÃÂü |
var isEmpty = false; | var isEmpty = false; | ||
− | // | + | // èÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýà( <menulist> ÃÂ¥ÃÂ
ÃÂçôà) |
var searchTermsBox = document.getElementById("TutTB-SearchTerms"); | var searchTermsBox = document.getElementById("TutTB-SearchTerms"); | ||
− | // | + | // Ã¥þÃÂæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂÃÂäøòïüÃÂæÃÂôçÃÂÃÂÃ¥ÿÃÂ
èæÃÂçÃÂÃÂçéúçÃÂý |
− | // | + | // ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèäøÃÂéÃÂâçÃÂÃÂçÃÂàTutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂéÃÂÃÂäýÃÂçÃÂÃÂçôðçïà|
var searchTerms = TutTB_TrimString(searchTermsBox.value); | var searchTerms = TutTB_TrimString(searchTermsBox.value); | ||
− | if(searchTerms.length == 0) // | + | if(searchTerms.length == 0) // æÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂÃÂ¥ÃÂÃÂïüà|
− | isEmpty = true; // | + | isEmpty = true; // æÃÂïïüÃÂèèÃÂÃ¥îàisEmpty çÃÂú true |
− | else // | + | else // äøÃÂïüÃÂèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
searchTerms = TutTB_ConvertTermsToURI(searchTerms); | searchTerms = TutTB_ConvertTermsToURI(searchTerms); | ||
− | // | + | // éÃÂøæÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂéáÃÂÃÂ¥ÃÂà|
− | // | + | // Ã¥æÃÂæÃÂÃÂæìÃÂäýÃÂæÃÂïçéúçÃÂýçÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥üÃÂÃ¥ðÃÂäýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂð Google çöòéàÃÂäøÃÂéÃÂéçÃÂöçÃÂÃÂÃÂ¥ÃÂðæÃÂùãÃÂà|
− | // | + | // ÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃ¥ðÃÂèüøÃÂ¥ÃÂ
Ã¥çÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂãÃÂà|
switch(type) | switch(type) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂÃÂ¥ÃÂÃÂçÃÂÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
case "image": | case "image": | ||
if(isEmpty) { URL = "http://images.google.com/"; } | if(isEmpty) { URL = "http://images.google.com/"; } | ||
行 1,421: | 行 1,422: | ||
− | // | + | // Ã¥ûúçëÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
case "web": | case "web": | ||
default: | default: | ||
行 1,429: | 行 1,430: | ||
} | } | ||
− | // | + | // äýÿçÃÂè TutTB_LoadURL ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýèæÃÂçêÃÂäøÃÂèüÃÂÃÂ¥ÃÂ
Ã¥çöòÃÂ¥ÃÂà|
TutTB_LoadURL(URL); | TutTB_LoadURL(URL); | ||
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_TrimString() | + | // TutTB_TrimString() ÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂäÿîÃÂ¥ÃÂêÃÂ¥ÃÂÃÂäøòçÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂçéúçÃÂýéÃÂèäûýïüÃÂçÃÂöÃ¥þÃÂÃ¥ðÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂçéúçÃÂýéÃÂèäûýèýÃÂæÃÂÃÂæÃÂà|
− | // | + | // ÃÂ¥ÃÂîäøÃÂÃÂ¥ÃÂÃÂçéúçÃÂýïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂäÿîæÃÂùÃ¥þÃÂÃÂ¥ÃÂÃÂäøòãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_TrimString(string) | function TutTB_TrimString(string) | ||
{ | { | ||
− | // | + | // Ã¥æÃÂæÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂÃÂ¥ÃÂÃÂäøòçÃÂáæÃÂÃÂïüÃÂæÃÂÃÂæÃÂïæòÃÂæÃÂÃÂæÃÂñèÃ¥ÿïüÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçéúÃÂ¥ÃÂü |
if (!string) | if (!string) | ||
return ""; | return ""; | ||
− | string = string.replace(/^\s+/, ''); // | + | string = string.replace(/^\s+/, ''); // ççûéÃÂäÃÂ¥ÃÂÃÂéÃÂâçéúçÃÂý |
− | string = string.replace(/\s+$/, ''); // | + | string = string.replace(/\s+$/, ''); // ççûéÃÂäÃ¥þÃÂéÃÂâçéúçÃÂý |
− | // | + | // Ã¥ðÃÂæÃÂÃÂæÃÂÃÂçéúçÃÂýéÃÂèäûýçÃÂèÃÂ¥ÃÂîäøÃÂçéúçÃÂýäûãæÃÂÿ |
string = string.replace(/\s+/g, ' '); | string = string.replace(/\s+/g, ' '); | ||
− | return string; // | + | return string; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂæÃÂùèîÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂü |
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_ConvertTermsToURI() | + | // TutTB_ConvertTermsToURI() ÃÂ¥ÃÂýÃ¥üÃÂÃ¥ðÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòèýÃÂæÃÂÃÂçÃÂúÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_ConvertTermsToURI(terms) | function TutTB_ConvertTermsToURI(terms) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂéÃÂãÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂþæïÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøò |
var termArray = new Array(); | var termArray = new Array(); | ||
− | // | + | // çÃÂèçéúçÃÂýÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäøò |
termArray = terms.split(" "); | termArray = terms.split(" "); | ||
− | // | + | // çÃÂèäþÃÂÃÂ¥ÃÂÃÂæÃÂþÃ¥îÃÂÃÂ¥ÃÂ
èçÃÂÃÂçöòÃÂ¥ÃÂà|
var result = ""; | var result = ""; | ||
− | // | + | // ÃÂ¥ÃÂèÃÂ¥ÃÂÃÂäøòäøÃÂéÃÂÃÂèÿô |
for(var i=0; i<termArray.length; i++) | for(var i=0; i<termArray.length; i++) | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂèçììäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂäøòÃ¥þÃÂçÃÂÃÂæÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂèÃÂ¥ÃÂàèÃÂÃÂ(+)éÃÂÃÂéÃÂà|
if(i > 0) | if(i > 0) | ||
result += "+"; | result += "+"; | ||
− | // | + | // äýÿçÃÂè Firefox ÃÂ¥ÃÂ
çÃ¥ûúçÃÂàencodeURIComponent() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂàÃ¥ïà|
result += encodeURIComponent(termArray[i]); | result += encodeURIComponent(termArray[i]); | ||
} | } | ||
− | return result; // | + | return result; // ÃÂ¥ÃÂóÃÂ¥ÃÂÃÂçõÃÂæÃÂà|
} | } | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_LoadURL() | + | // TutTB_LoadURL() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèçÃÂÃÂèæýÃÂ¥ÃÂèäøÃÂèüÃÂÃÂ¥ÃÂ
Ã¥çÃÂùÃ¥îÃÂçÃÂÃÂçöòÃÂ¥ÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_LoadURL(url) | function TutTB_LoadURL(url) | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂèçöòÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂóÃÂ¥ÃÂ
Ã¥çÃÂÃÂçöòÃÂ¥ÃÂà|
window._content.document.location = url; | window._content.document.location = url; | ||
行 1,493: | 行 1,494: | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_KeyHandler() | + | // TutTB_KeyHandler() æêâæÃÂÃ¥ãÃÂÃÂEnterãÃÂÃÂæÃÂïÃÂ¥ÃÂæèâëèüøÃÂ¥ÃÂ
Ã¥ãÃÂÃÂæÃÂïçÃÂÃÂèéñïüÃÂÃ¥ðñÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_KeyHandler(event) | function TutTB_KeyHandler(event) | ||
{ | { | ||
− | // [ENTER] | + | // [ENTER]èâëæÃÂÃÂäøÃÂäúÃÂÃÂ¥ÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂæÃÂïïüÃÂÃÂ¥ÃÂ÷èáÃÂæÃÂÃÂÃ¥ðà|
if(event.keyCode == event.DOM_VK_RETURN) | if(event.keyCode == event.DOM_VK_RETURN) | ||
TutTB_Search(event, 'web'); | TutTB_Search(event, 'web'); | ||
行 1,503: | 行 1,504: | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
− | // TutTB_Populate() | + | // TutTB_Populate() ÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæìÃÂäýÃÂçÃÂÃÂäøÃÂæÃÂÃÂÃ¥üÃÂéÃÂøÃÂ¥ÃÂîæÃÂþçýîÃÂ¥ÃÂÃÂæÃÂ
ÃÂçÃÂâçÃÂÃÂçÃÂÃÂéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîãÃÂà|
− | // | + | // éÃÂÃÂçÃÂöéÃÂÃÂäøÃÂæÃÂïéÃÂÃÂÃ¥øøÃ¥ïæçÃÂèçÃÂÃÂïüÃÂäýÃÂæÃÂïèÃÂÃÂçÃÂñéÃÂÃÂÃÂ¥ÃÂÃÂçïÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂøÃÂ¥ÃÂîçýîÃÂ¥ÃÂ
Ã¥çÃÂÃÂéÃÂÃÂäýÃÂæÃÂùÃ¥üÃÂãÃÂà|
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
function TutTB_Populate() | function TutTB_Populate() | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîÃÂ¥ÃÂ
ÃÂçôà|
var menu = document.getElementById("TutTB-SearchTermsMenu"); | var menu = document.getElementById("TutTB-SearchTermsMenu"); | ||
− | // | + | // ççûéÃÂäÃÂ¥ÃÂèÃ¥ýÃÂÃÂ¥ÃÂúéÃÂøÃÂ¥ÃÂîçÃÂîÃÂ¥ÃÂÃÂçÃÂÃÂéàÃÂ
çÃÂî |
for(var i=menu.childNodes.length - 1; i >= 0; i--) | for(var i=menu.childNodes.length - 1; i >= 0; i--) | ||
{ | { | ||
行 1,517: | 行 1,518: | ||
} | } | ||
− | // | + | // æÃÂÃÂÃ¥îÃÂèæÃÂÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂéàÃÂ
çÃÂîæÃÂøéÃÂà|
var numItemsToAdd = 10; | var numItemsToAdd = 10; | ||
for(var i=0; i<numItemsToAdd; i++) | for(var i=0; i<numItemsToAdd; i++) | ||
{ | { | ||
− | // | + | // Ã¥ûúçëÃÂèæÃÂÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂî |
var tempItem = document.createElement("menuitem"); | var tempItem = document.createElement("menuitem"); | ||
− | // | + | // èèÃÂÃ¥îÃÂæÃÂðéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîçÃÂÃÂæèÃÂçñä |
tempItem.setAttribute("label", "Dynamic Item Number " + (i+1)); | tempItem.setAttribute("label", "Dynamic Item Number " + (i+1)); | ||
− | // | + | // ÃÂ¥ÃÂèéÃÂøÃÂ¥ÃÂîäøÃÂæÃÂðÃ¥âÃÂéàÃÂ
çÃÂî |
menu.appendChild(tempItem); | menu.appendChild(tempItem); | ||
} | } | ||
行 1,534: | 行 1,535: | ||
</pre> | </pre> | ||
− | == | + | == ÃÂ¥ÃÂÃÂæÃÂ
ÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥å÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂà(Dynamically Adding Toolbar Buttons) == |
− | + | ÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ÃÂ¥ÃÂÃÂæÃÂ
ÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂÃ¥ðñè÷ÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂçýîÃÂ¥ÃÂ
Ã¥éÃÂøÃÂ¥ÃÂîäøÃÂæèãçðáÃÂ¥ÃÂîïüÃÂèÃÂÃÂäøÃÂéÃÂÃÂéÃÂÃÂÃ¥øøçÃÂøäüüãÃÂÃÂéæÃÂÃÂ¥ÃÂ
ÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëÃÂ¥ÃÂÃÂæÃÂ
ÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂÃ¥îùÃÂ¥ÃÂèãÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂ
ÃÂïüàtoolbaritem ÃÂ¥ÃÂ
ÃÂçôàæÃÂïäøÃÂéÃÂïçÃÂÃÂéÃÂøæÃÂÃÂïüÃÂæèÃÂèèÃÂÃ¥æÃÂäøÃÂïüà| |
<pre> | <pre> | ||
<toolbaritem id="TutTB-DynButtonContainer" /> | <toolbaritem id="TutTB-DynButtonContainer" /> | ||
</pre> | </pre> | ||
− | + | çÃÂþÃÂ¥ÃÂèïüÃÂÃ¥îùÃÂ¥ÃÂèÃ¥÷òçöÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂéçÃÂèäúÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèÃ¥îÃÂïüÃÂäþÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ÃÂ¥ÃÂÃÂæÃÂ
àtoolbarbutton ÃÂ¥ÃÂ
ÃÂçôàïüÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂçÃÂÃÂäøÃÂäøÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ÃÂ¥ÃÂÃÂæÃÂ
ÃÂæÃÂÃÂéÃÂÃÂçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂçïÃÂäþÃÂïüà| |
<pre> | <pre> | ||
function TutTB_AddDynamicButtons() | function TutTB_AddDynamicButtons() | ||
{ | { | ||
− | // | + | // ÃÂ¥ÃÂÃÂÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂè XUL æÃÂÃÂèÿðäøÃÂÃ¥âÃÂÃÂ¥ÃÂàçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂéàÃÂ
çÃÂîãÃÂÃÂÃ¥îùÃÂ¥ÃÂèãÃÂà|
var container = document.getElementById("TutTB-DynButtonContainer"); | var container = document.getElementById("TutTB-DynButtonContainer"); | ||
− | // | + | // ççûéÃÂäæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçÃÂÃÂæÃÂÃÂéÃÂà|
for(i=container.childNodes.length; i > 0; i--) { | for(i=container.childNodes.length; i > 0; i--) { | ||
container.removeChild(container.childNodes[0]); | container.removeChild(container.childNodes[0]); | ||
} | } | ||
− | // | + | // Ã¥âÃÂÃÂ¥ÃÂàäúÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂæÃÂÃÂéÃÂà|
for(var i=0; i<5; i++) { | for(var i=0; i<5; i++) { | ||
var tempButton = null; | var tempButton = null; | ||
行 1,563: | 行 1,564: | ||
} | } | ||
</pre> | </pre> | ||
− | + | éÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂÃÂçýîÃÂ¥ÃÂ
ÃÂ¥ÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂøÃÂ¥ÃÂîéÃÂÃÂÃ¥øøçÃÂøäüüãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃ¥îùÃÂ¥ÃÂèäøÃÂççûéÃÂäçÃÂþæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂæÃÂÃÂéÃÂÃÂïüÃÂçÃÂöÃ¥þÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥æÃÂðçÃÂÃÂãÃÂà| |
− | '''Optional Programming Exercise''' | + | '''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 çÃÂÃÂéëÃÂäúîÃ¥úææèÃÂèèÃÂæÃÂÃÂéÃÂÃÂäøÃÂæÃÂÃÂÃÂ¥ÃÂèæÃÂÃÂÃ¥ðÃÂæìÃÂäýÃÂæòÃÂæÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂçÃÂüçÃÂÃÂäýÃÂçÃÂèïüÃÂÃÂ¥ÃÂêèÃÂýÃÂ¥ÃÂ÷èáÃÂæÃÂüæÃÂÃÂæÃÂÃÂÃ¥ðÃÂÃÂ¥ÃÂÃÂäøòæÃÂÃÂãÃÂà| |
− | + | äøÃÂéÃÂâçÃÂÃÂäþÃÂÃÂ¥ÃÂÃÂæÃÂïÃ¥æÃÂäýÃÂÃ¥ûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥æÃÂçÃÂ¥ÃÂöéÃÂÃÂéÃÂÃÂçÃÂÃÂäøÃÂèÃÂìÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂÃÂæìáæÃÂÃÂéÃÂÃÂïüÃÂéÃÂÃÂäøÃÂæÃÂïÃ¥ïæçÃÂèçÃÂÃÂçïÃÂäþÃÂïüÃÂÃÂ¥ÃÂêæÃÂïèÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂðçÃÂÃÂãÃÂÃÂæÃÂÃ¥èÃÂÃÂæÃÂïéÃÂøÃÂ¥ÃÂîéàÃÂ
çÃÂîçÃÂÃÂæÃÂÃÂèÿðæèÃÂèèÃÂïüà| |
<pre> | <pre> | ||
<menuitem label="Toggle Web Search Button" | <menuitem label="Toggle Web Search Button" | ||
行 1,583: | 行 1,584: | ||
oncommand="TutTB_ToggleWebSearchButton()" /> | oncommand="TutTB_ToggleWebSearchButton()" /> | ||
</pre> | </pre> | ||
− | TutTB_ToggleWebSearchButton() | + | TutTB_ToggleWebSearchButton()ÃÂ¥ÃÂýÃ¥üÃÂçÃÂÃÂçèÃÂÃ¥üÃÂçâüïüà|
<pre> | <pre> | ||
function TutTB_ToggleWebSearchButton() | function TutTB_ToggleWebSearchButton() | ||
行 1,595: | 行 1,596: | ||
} | } | ||
</pre> | </pre> | ||
− | + | éæÃÂÃÂ¥ÃÂ
ÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂÃÂèÃÂÃÂèöãçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂè 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 | + | Googlebar Lite ÃÂ¥ÃÂ
ÃÂèèñäýÿçÃÂèèÃÂÃÂ
éÃÂøæÃÂÃÂæÃÂÃÂéÃÂÃÂÃÂ¥ÃÂèÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂæèãÃÂ¥ÃÂÃÂãÃÂÃÂäùÃÂÃ¥ðñæÃÂïèêêïüÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂèÃÂýÃ¥äàÃÂ¥ÃÂÃÂæÃÂ
ÃÂçÃÂÃÂéáïçäúæÃÂÃÂæÃÂïéÃÂñèÃÂÃÂÃÂ¥ÃÂïçÃÂèçÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂéÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂèæÃÂÃ¥îÃÂæÃÂÃÂçÃÂàJavaScriptçèÃÂÃ¥üÃÂçâüçÃÂÃÂæîõïüà|
<pre> | <pre> | ||
var TB_Web = document.getElementById("TutTB-Web-Button"); | var TB_Web = document.getElementById("TutTB-Web-Button"); | ||
TB_Web.setAttribute("hidden", !TutTB_ShowWebButton); | TB_Web.setAttribute("hidden", !TutTB_ShowWebButton); | ||
</pre> | </pre> | ||
− | + | éæÃÂÃÂ¥ÃÂ
ÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèîÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂæÃÂÃÂéÃÂÃÂäýÿçÃÂè getElementById() ÃÂ¥ÃÂýÃ¥üÃÂïüÃÂçÃÂöÃ¥þÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüÃÂ¥ÃÂë setAttribute()ÃÂ¥ÃÂýÃ¥üÃÂäþÃÂæÃÂùèîàhidden Ã¥ñìæÃÂççÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂäýàæÃÂÃÂçÃÂüçÃÂþéÃÂÃÂÃÂ¥ÃÂàhidden ÃÂ¥ÃÂüè÷ÃÂæÃÂÃÂÃÂ¥ÃÂè TutTB_ShowWebButton æÃÂÃÂèèÃÂÃ¥îÃÂçÃÂÃÂçÃÂøÃÂ¥ÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüæÃÂïÃÂ¥ÃÂÃÂÃ¥øÃÂæÃÂÃÂæèÃÂçñä(boolean flag)ïüÃÂçÃÂèäþÃÂèþèÃÂ¥ÃÂÃ¥äýÿçÃÂèèÃÂÃÂ
æÃÂïÃÂ¥ÃÂææÃÂóèæÃÂçÃÂÃÂÃÂ¥ÃÂðãÃÂÃÂçöòéàÃÂæÃÂÃÂÃ¥ðÃÂãÃÂÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂèîÃÂæÃÂøçÃÂÃÂÃÂ¥ÃÂüïüÃÂæÃÂïÃ¥þÃÂäýÿçÃÂèèÃÂÃÂ
èèÃÂÃ¥îÃÂäøÃÂèîÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂðçÃÂÃÂãÃÂÃÂçùüçúÃÂéÃÂñèîÃÂïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥æÃÂäýÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂéûÃÂãÃÂà| |
− | == | + | == èîÃÂÃÂ¥ÃÂÃÂèÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäýÿçÃÂèèÃÂÃÂ
èèÃÂÃ¥îà(Reading and Storing User Preferences) == |
− | ( | + | (éÃÂÃÂéÃÂèäûýÃÂ¥ÃÂêæÃÂïÃÂ¥ÃÂÃÂèèôäýàæÃÂÃÂéúüçÃÂèïüÃÂÃÂ¥ÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂçïÃÂäþÃÂäøæäøÃÂæÃÂÃÂÃÂ¥ÃÂúçÃÂþ)ãÃÂà|
− | + | çÃÂúäúÃÂèîÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂçÃÂÃÂèèÃÂÃ¥îÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàFirefox èèÃÂÃ¥îÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäûÃÂéÃÂâ(preferences service interface)ãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃ¥åûúçëÃÂäøÃÂÃÂ¥ÃÂÃÂèîÃÂæÃÂøäþÃÂÃ¥îÃÂæÃÂÃÂïüà| |
<pre> | <pre> | ||
const TutTB_PrefService = | const TutTB_PrefService = | ||
行 1,618: | 行 1,619: | ||
getService(Components.interfaces.nsIPrefService); | getService(Components.interfaces.nsIPrefService); | ||
</pre> | </pre> | ||
− | + | äøÃÂæÃÂæÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂäûÃÂéÃÂâïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥çÃÂòÃ¥þÃÂÃÂ¥ÃÂ¥ÃÂäûöèèÃÂÃ¥îÃÂçÃÂÃÂäøÃÂéÃÂèÃÂ¥ÃÂÃÂ(i.e. the location in the preferences "registry" where our extension's settings are kept)ïüà| |
<pre> | <pre> | ||
const TutTB_Branch = TutTB_PrefService.getBranch("tuttoolbar."); | const TutTB_Branch = TutTB_PrefService.getBranch("tuttoolbar."); | ||
</pre> | </pre> | ||
− | + | ÃÂ¥ÃÂÃÂèèÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçïÃÂäþÃÂçÃÂÃÂèèÃÂÃ¥îÃÂèõ÷Ã¥çÃÂæÃÂü tuttoolbar æÃÂÃÂÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂàæÃÂäïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂÃÂ¥ÃÂÃÂäøò getBranch() (ÃÂ¥ÃÂ
çÃ¥ûúçÃÂàFireofx ÃÂ¥ÃÂýÃ¥üÃÂ) ãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂèèÃÂÃ¥îÃÂïüÃÂæÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂïäûÃ¥çÃÂòÃ¥þÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃ¥éÃÂøéàÃÂ
çÃÂÃÂÃÂ¥ÃÂüãÃÂÃÂéÃÂÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂðãÃÂÃÂéáïçäúçöòéàÃÂæÃÂÃÂÃ¥ðÃÂæÃÂÃÂéÃÂÃÂãÃÂÃÂéÃÂøéàÃÂ
ÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂüïüà| |
<pre> | <pre> | ||
if(TutTB_Branch.prefHasUserValue("show.button.web")) | if(TutTB_Branch.prefHasUserValue("show.button.web")) | ||
行 1,632: | 行 1,633: | ||
} | } | ||
</pre> | </pre> | ||
− | + | éæÃÂÃÂ¥ÃÂ
ÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæøìèéæéÃÂÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæÃÂïÃÂ¥ÃÂæÃÂ¥ÃÂÃÂÃÂ¥ÃÂèæÃÂüèèÃÂÃ¥îÃÂæèùçÃÂÃÂçõÃÂæçÃÂèãáãÃÂÃÂÃ¥æÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂèïüÃÂÃ¥ðñçÃÂè getBoolPref()ÃÂ¥ÃÂýÃ¥üÃÂèîÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂü(ÃÂ¥ÃÂòÃÂ¥ÃÂÃÂæÃÂü TutTB_ShowWebButton èîÃÂæÃÂø)ãÃÂÃÂÃÂ¥ÃÂæÃÂ¥ÃÂÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñèèÃÂÃ¥îÃÂçÃÂúéàÃÂèèÃÂÃÂ¥ÃÂü(èèÃÂÃ¥îÃÂçÃÂÃÂæèùèÃÂÃÂÃÂ¥ÃÂ
èÃÂ¥ÃÂÃÂèîÃÂæÃÂø)ãÃÂà| |
− | + | ÃÂ¥ÃÂòÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæÃÂïÃ¥þÃÂçðáÃÂ¥ÃÂîçÃÂÃÂÃÂ¥ÃÂçïüÃÂäýàÃÂ¥ÃÂêèæÃÂæÃÂÃÂäþÃÂèèÃÂÃ¥îÃÂçÃÂÃÂÃÂ¥ÃÂÃÂçèñïüÃÂçÃÂöÃ¥þÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂüïüà| |
<pre> | <pre> | ||
TutTB_Branch.setBoolPref("show.button.web", TutTB_ShowWebButton); | TutTB_Branch.setBoolPref("show.button.web", TutTB_ShowWebButton); | ||
</pre> | </pre> | ||
− | + | ãÃÂÃÂèîÃÂÃÂ¥ÃÂÃÂèÃÂÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂãÃÂÃÂçÃÂèäþÃÂÃÂ¥ÃÂòÃÂ¥ÃÂÃÂäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöèèÃÂÃ¥îÃÂæÃÂïÃ¥þÃÂæÃÂùäþÿçÃÂÃÂæÃÂùÃ¥üÃÂãÃÂÃÂÃ¥äçéÃÂèÃÂ¥ÃÂÃÂçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöéÃÂýäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèÃÂýïüÃÂæÃÂÃÂèèñÃ¥äÃÂÃÂ¥ÃÂïäýÿçÃÂèçÃÂÃÂçïÃÂäþÃÂçÃÂÃÂèÃÂÃÂäýàÃÂ¥ÃÂûçàÃÂçéöãÃÂÃÂÃÂ¥ÃÂæÃ¥äÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥çÃÂÃÂçÃÂàMozillaZine knowledge base çÃÂÃÂ[http://kb.mozillazine.org/Dev_:_Using_preferences æÃÂÃÂçëà]ãÃÂà| |
− | = | + | = çììäøÃÂçëàïüÃÂÃ¥ðÃÂèãà(Packaging the Toolbar) = |
− | + | ÃÂ¥ÃÂðçÃÂîÃÂ¥ÃÂÃÂçÃÂúæÃÂâïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂèÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüäþÃÂèÃÂÃÂçÃÂÃÂÃ¥îÃÂèãÃÂçÃÂÃÂéÃÂèäûýãÃÂÃÂäýÃÂæÃÂïäýÿçÃÂèèÃÂÃÂ
äøæäøÃÂæÃÂÃÂæÃÂóçÃÂèéÃÂÃÂæèãçÃÂÃÂæÃÂùÃ¥üÃÂäþÃÂÃ¥îÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂÃ¥ðÃÂèãÃÂæêÃÂæáÃÂæÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂèãÃÂæêÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèæÃÂÃ¥ûúçëÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂXPI ÃÂ¥ÃÂàJARãÃÂÃÂÃÂ¥ÃÂÃ¥èâëéÃÂÃÂæèãçÃÂÃÂæêÃÂæáÃÂÃÂ¥ÃÂÃÂçèñçõæéèÃÂäúÃÂïüÃÂäûÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂêäøÃÂéÃÂÃÂæÃÂïçÃÂè zip Ã¥ãÃÂçøîæêÃÂæáÃÂæàüÃ¥üÃÂÃÂ¥ÃÂýèãÃÂçÃÂÃÂãÃÂà| |
− | + | çÃÂþÃÂ¥ÃÂèæÃÂïÃ¥ãÃÂçøîÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֍ÃÂüæÃÂîÃÂ¥ÃÂÃÂæÃÂÃÂçÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäúúÃ¥ûúèÃÂðäýÿçÃÂè [http://www.winzip.com/ WinZip] (ÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂæèáÃ¥üÃÂ)ïüÃÂäýÃÂæÃÂïçöòè÷ïäøÃÂäùÃÂæÃÂÃÂäøÃÂÃ¥ðÃÂÃÂ¥ÃÂ
ÃÂèòûçÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂÃÂÃÂ¥ÃÂèéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂäøàïüàæÃÂÃÂæÃÂÃÂäýÿçÃÂè UNIX Ã¥ãÃÂçøîÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷;ÃÂ¥ÃÂè Windows äøÃÂïüÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂè [http://www.cygwin.com/ Cygwin] ãÃÂà| |
− | == | + | == æÃÂôæÃÂð Chrome æøÃÂ
ÃÂ¥ÃÂî (Updating the Chrome Manifest) == |
− | + | çììäøÃÂæÃÂÃ¥åðÃÂèãÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúÃÂæÃÂôæÃÂð chrome æøÃÂ
ÃÂ¥ÃÂîãÃÂÃÂæóèæÃÂÃÂïüÃÂÃ¥æÃÂæÃÂÃÂèæÃÂçùüçúÃÂÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüïüÃÂäýàèæÃÂæÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂàchrome æøÃÂ
ÃÂ¥ÃÂîïüÃÂäøÃÂÃÂ¥ÃÂÃÂæÃÂïÃ¥ðÃÂèãÃÂçÃÂèçÃÂÃÂïüÃÂÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂæÃÂïÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüçÃÂèçÃÂÃÂãÃÂÃÂèÃÂÃÂçÃÂÃÂéÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂæêÃÂæáÃÂæÃÂïÃ¥þÃÂéúûçÃÂ
éçÃÂÃÂïüÃÂæÃÂÃÂäûÃ¥æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂêéÃÂÃÂÃ¥ðÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäøÃÂÃ¥÷òÃÂ¥ÃÂÃÂÃÂ¥ÃÂèçÃÂàchrome æøÃÂ
ÃÂ¥ÃÂîÃÂ¥ÃÂÃÂèÃÂÃÂçÃÂÃÂãÃÂÃÂæóèæÃÂÃÂïüÃÂÃÂ¥ÃÂèæÃÂÃÂÃÂ¥ÃÂÃÂäÿîæÃÂùæøÃÂ
ÃÂ¥ÃÂîÃ¥þÃÂïüÃÂÃ¥ðñäøÃÂèÃÂýçÃÂèÃÂ¥ÃÂèÃÂ¥ÃÂÃÂæÃÂ
ÃÂéÃÂÃÂçÃÂüäúÃÂïüÃÂéÃÂäéÃÂÃÂäýàäÿîæÃÂùÃÂ¥ÃÂÃÂäþÃÂãÃÂÃÂèîÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂ
ÃÂäþÃÂÃÂ¥ÃÂÃÂæÃÂöäøÃÂäøÃÂæøÃÂ
ÃÂ¥ÃÂîçÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùïüà| |
<pre> | <pre> | ||
content tuttoolbar chrome/content/ | content tuttoolbar chrome/content/ | ||
overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul | overlay chrome://browser/content/browser.xul chrome://tuttoolbar/content/tuttoolbar.xul | ||
skin tuttoolbar classic/1.0 chrome/skin/</pre> | skin tuttoolbar classic/1.0 chrome/skin/</pre> | ||
− | + | æÃÂÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂÃÂ¥ÃÂðæÃÂùéÃÂÃÂèæÃÂäÿîæÃÂùïüÃÂÃÂ¥ÃÂ
ÃÂçÃÂÃÂçÃÂÃÂçììäøÃÂèáÃÂïüà| |
<pre> | <pre> | ||
content tuttoolbar jar:chrome/tuttoolbar.jar!/content/</pre> | content tuttoolbar jar:chrome/tuttoolbar.jar!/content/</pre> | ||
− | + | æÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
Ã¥äúÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂéàÃÂ
çÃÂîãÃÂÃÂéæÃÂÃÂ¥ÃÂ
ÃÂæÃÂï jar: ïüÃÂæÃÂþçýîÃÂ¥ÃÂèè÷ïÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂÃÂéÃÂâãÃÂÃÂéÃÂÃÂæÃÂÃÂÃ¥îàFirefox Ã¥ÿÃÂ
éàÃÂÃ¥þàJAR æêÃÂæáÃÂäøÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂúÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùãÃÂÃÂÃÂ¥ÃÂÃÂäþÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂàÃÂ¥ÃÂ
ÃÂ¥ tuttoolbar.jar!/ïüÃÂäûÃÂæÃÂü chrome/ ÃÂ¥ÃÂàcontent/ çÃÂîéÃÂÃÂäøÃÂéÃÂÃÂïüÃÂéÃÂÃÂæÃÂÃÂèÿðäúÃÂÃÂ¥ÃÂêÃÂ¥ÃÂàJAR éÃÂÃÂèæÃÂèâëÃÂ¥ÃÂÃÂÃÂ¥ÃÂúçÃÂÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂàJAR çÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂèæÃÂè÷ÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂæêÃÂÃÂ¥ÃÂÃÂçÃÂøÃÂ¥ÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂæèãÃÂ¥ÃÂðïüÃÂÃ¥ÿÃÂ
éàÃÂè÷ÃÂæêÃÂÃÂ¥ÃÂÃÂäøÃÂæèãäýÿçÃÂèÃ¥ðÃÂÃ¥ïëÃÂ¥ÃÂÃÂéëÃÂãÃÂÃÂæóèæÃÂÃÂïüÃÂééÃÂÃÂ¥ÃÂÃÂèÃÂÃÂäøÃÂæÃÂïæÃÂÃÂÃÂ¥ÃÂÃÂéÃÂïèêäïüÃÂéÃÂÃÂæÃÂïÃ¥ÿÃÂ
èæÃÂçÃÂÃÂãÃÂÃÂÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂéÃÂÃÂèæÃÂäÿîæÃÂùçÃÂÃÂè÷ïÃ¥þÃÂæÃÂï skin ïüÃÂäþÃÂçÃÂÃÂçÃÂÃÂäÿîæÃÂùÃ¥þÃÂçÃÂÃÂÃÂ¥ÃÂ
çÃ¥îùïüà| |
<pre> | <pre> | ||
content tuttoolbar jar:chrome/tuttoolbar.jar!/content/ | content tuttoolbar jar:chrome/tuttoolbar.jar!/content/ | ||
行 1,662: | 行 1,663: | ||
skin tuttoolbar classic/1.0 jar:chrome/tuttoolbar.jar!/skin/</pre> | skin tuttoolbar classic/1.0 jar:chrome/tuttoolbar.jar!/skin/</pre> | ||
− | == | + | == Ã¥ûúçëàJAR æêÃÂæáà(Creating the JAR File) == |
− | + | çììäøÃÂÃÂ¥ÃÂÃÂèæÃÂÃ¥ðÃÂèãÃÂçÃÂÃÂæÃÂï JAR æêÃÂæáÃÂãÃÂÃÂéæÃÂÃÂ¥ÃÂ
ÃÂæÃÂÃÂÃÂ¥ÃÂÃÂèÃÂÃÂçÃÂàchrome çÃÂîéÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúàXULãÃÂÃÂJavaScriptãÃÂÃÂCSS äûÃÂ¥ÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂçÃÂÃÂãÃÂÃÂæêÃÂæáÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 1,681: | 行 1,682: | ||
+- web.png | +- web.png | ||
+- tuttoolbar.css</pre> | +- tuttoolbar.css</pre> | ||
− | + | Ã¥ðÃÂèãàJAR æÃÂÃÂæÃÂï XPI æÃÂÃÂïüÃÂæÃÂÃÂÃ¥îùæÃÂÃÂçÃÂïçÃÂÃÂéÃÂïèêäÃ¥ðñæÃÂïéÃÂúæüÃÂäúÃÂçÃÂøéÃÂÃÂçÃÂÃÂæêÃÂæáÃÂãÃÂÃÂÃ¥æÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂèãàJAR æêÃÂæáÃÂæÃÂïÃÂ¥ÃÂÃÂçÃÂîéÃÂÃÂïüÃÂèãáéÃÂâÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúÃÂïüà| |
<pre> | <pre> | ||
+- content/ | +- content/ | ||
行 1,693: | 行 1,694: | ||
+- web.png | +- web.png | ||
+- tuttoolbar.css</pre> | +- tuttoolbar.css</pre> | ||
− | + | éÃÂÃÂæÃÂïæÃÂÃÂçÃÂè UNIX Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
֍ÃÂÃÂæÃÂùÃ¥üÃÂ(ÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂæèáÃ¥üÃÂ)ïüà| |
<pre> | <pre> | ||
zip -r tuttoolbar.jar content/* skin/*</pre> | zip -r tuttoolbar.jar content/* skin/*</pre> | ||
− | ( | + | (èÃÂïèÃÂÃÂ
ïüÃÂäøÃÂèÃÂì Windows äýÿçÃÂèèÃÂÃÂ
ÃÂ¥ÃÂïäûÃ¥çÃÂôæÃÂÃ¥åðàcontent ÃÂ¥ÃÂàskin çÃÂîéÃÂÃÂäûÃÂ¥ zip æàüÃ¥üÃÂÃ¥ãÃÂçøîæÃÂÃÂÃÂ¥ÃÂïæêÃÂÃÂ¥ÃÂà.jar çÃÂÃÂæêÃÂæáÃÂãÃÂÃÂ) |
− | == | + | == Ã¥ûúçëàXPI æêÃÂæáÃÂ(Creating the XPI File) == |
− | + | ÃÂ¥ÃÂèÃ¥ûúçëÃÂÃ¥åý JAR æêÃÂæáÃÂäùÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂÃ¥ûúçëàXPI æêÃÂæáÃÂïüÃÂéÃÂÃÂæÃÂïçÃÂÃÂæÃÂãäýàèæÃÂçõæäýÿçÃÂèèÃÂÃÂ
çÃÂèçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥îÃÂèãÃÂæêÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂÃÂ¥ÃÂèæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂäøÃÂÃ¥ûúçëÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂçõÃÂæçÃÂÃ¥æÃÂäøÃÂïüà| |
<pre> | <pre> | ||
+- TutToolbar/ | +- TutToolbar/ | ||
行 1,718: | 行 1,719: | ||
+- web.png | +- web.png | ||
+- tuttoolbar.css</pre> | +- tuttoolbar.css</pre> | ||
− | + | è÷àJAR æêÃÂæáÃÂäøÃÂæèãïüÃÂXPI Ã¥ÿÃÂ
éàÃÂçöÃÂæÃÂÃÂçÃÂøÃ¥ðÃÂçÃÂÃÂè÷ïÃ¥þÃÂãÃÂÃÂÃÂ¥ÃÂè XPI æêÃÂæáÃÂäøÃÂïüÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúÃÂäøÃÂÃÂ¥ÃÂÃÂæêÃÂæáÃÂïüÃÂÃ¥îÃÂèãÃÂæøÃÂ
ÃÂ¥ÃÂîãÃÂÃÂchrome æøÃÂ
ÃÂ¥ÃÂîÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ûúçëÃÂçÃÂàJAR æêÃÂæáÃÂãÃÂÃÂXPI èãáÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúÃÂïüà| |
<pre> | <pre> | ||
+- install.rdf | +- install.rdf | ||
行 1,724: | 行 1,725: | ||
+- chrome/ | +- chrome/ | ||
+- tuttoolbar.jar</pre> | +- tuttoolbar.jar</pre> | ||
− | + | äýÿçÃÂè UNIX Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
֍ÃÂÃÂæÃÂùÃ¥üÃÂïüà| |
<pre> | <pre> | ||
zip tuttoolbar.xpi install.rdf chrome.manifest chrome/tuttoolbar.jar</pre> | zip tuttoolbar.xpi install.rdf chrome.manifest chrome/tuttoolbar.jar</pre> | ||
− | == | + | == ÃÂ¥ÃÂ¥ÃÂäûöÃ¥îÃÂèãÃÂæøìèéæ (Installing Your Toolbar Extension) == |
− | + | æÃÂÃÂäúàXPI æêÃÂæáÃÂäùÃÂÃ¥þÃÂïüÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥éÃÂÃÂÃ¥çÃÂÃ¥îÃÂèãÃÂçÃÂÃÂæÃÂÃ¥ééÃÂãÃÂÃÂÃÂ¥ÃÂèçÃÂüèáèÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂïüÃÂäýàäøÃÂÃ¥îÃÂèæÃÂÃÂ¥ÃÂ
ÃÂçâúÃ¥îÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂïäûÃ¥åîÃÂèãÃÂãÃÂÃÂäøÃÂÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèéÃÂÃÂçÃÂüèèÃÂÃ¥îÃÂæêÃÂäþÃÂæøìèéæÃ¥îÃÂèãÃÂïüÃÂÃÂ¥ÃÂÃÂçîáÃÂ¥ÃÂèéÃÂãäûýèèÃÂÃ¥îÃÂæêÃÂÃ¥÷òçöÃÂæÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöçÃÂÃÂÃ¥îÃÂèãÃÂçÃÂÃÂæÃÂìãÃÂÃÂçÃÂèäýàäøÃÂèÃÂìäýÿçÃÂèçÃÂÃÂïüÃÂæÃÂÃÂæÃÂïÃÂ¥ÃÂæäøÃÂÃÂ¥ÃÂÃÂèèÃÂÃ¥îÃÂæêÃÂïüÃÂäþÃÂäøÃÂéÃÂâçÃÂÃÂæÃÂÃ¥ééÃÂäþÃÂæøìèéæÃ¥îÃÂèãÃÂïüà| |
− | # | + | # æêÃÂæáà> éÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂæáà(æÃÂÃÂæÃÂïçÃÂè Ctrl+O) ãÃÂà|
− | # | + | # ÃÂ¥ÃÂèÃ¥ðÃÂèéñæáÃÂäøÃÂïüÃÂæÃÂþÃÂ¥ÃÂðäýàçÃÂàXPI æêÃÂæáÃÂïüÃÂéûÃÂéÃÂøãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂãÃÂà|
− | + | Ã¥æÃÂæÃÂÃÂæÃÂãçâúÃÂ¥ÃÂðÃ¥îÃÂæÃÂÃÂÃ¥þÃÂïüÃÂäýàæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðÃ¥îÃÂèãÃÂçÃÂëéÃÂâãÃÂÃÂéÃÂøæÃÂÃÂäýàèæÃÂÃ¥îÃÂèãÃÂÃ¥þÃÂïüÃÂéÃÂÃÂæÃÂðéÃÂÃÂÃÂ¥ÃÂàFirefoxãÃÂÃÂäùÃÂÃ¥þÃÂïüÃÂäýàæÃÂÃÂèéòæÃÂÃÂçÃÂÃÂÃÂ¥ÃÂðÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂäúÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂäýàÃ¥îÃÂæÃÂÃÂçììäøÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ÃÂ¥ÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüà| |
− | == | + | == ÃÂ¥ÃÂàéÃÂÃÂÃ¥ðÃÂèãÃÂéÃÂÃÂçèà(Speeding Up the Packaging Process) == |
− | + | æÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂèãÃÂÃÂ¥ÃÂ¥ÃÂäûöÃ¥þÃÂèîÃÂäúúÃÂ¥ÃÂÃÂçÃÂ
éçÃÂÃÂïüÃÂçÃÂúäýÃÂäøÃÂçÃÂèæÃÂÃÂèÿðæêÃÂäþÃÂÃ¥îÃÂæÃÂÃÂÃÂ¥ÃÂâïüÃÂÃ¥æÃÂæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂýäûäÃÂ¥ÃÂÃÂæèáÃ¥üÃÂçÃÂàZIP Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ïüÃÂäýàÃÂ¥ÃÂïäûÃ¥åðÃÂéÃÂÃÂçèÃÂèÃÂêÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂäøÃÂéÃÂâçÃÂÃÂçïÃÂäþÃÂäýÿçÃÂè DOS æÃÂùæìáæêÃÂÃÂ¥ÃÂàUNIX Ã¥ãÃÂçøîÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂà| |
− | + | éæÃÂÃÂ¥ÃÂ
ÃÂÃ¥ûúçëÃÂÃÂ¥ÃÂ
éÃÂ¥ÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂæêÃÂïüÃÂæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂçÃÂàxpizip.txt ïüÃÂÃÂ¥ÃÂàchrome çÃÂîéÃÂÃÂäøÃÂçÃÂàjarzip.txt ãÃÂàæêÃÂæáÃÂäøÃÂÃÂ¥ÃÂÃÂ
ÃÂ¥ÃÂëäúÃÂèæÃÂÃ¥ðÃÂèãÃÂçÃÂÃÂéàÃÂ
çÃÂîïüà[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/xpizip.txt View xpizip.txt]] [[http://www.borngeek.com/firefox/toolbar-tutorial/samples/jarzip.txt View jarzip.txt]] | |
− | + | äøÃÂäøÃÂæÃÂÃ¥ïüÃÂÃÂ¥ÃÂèæÃÂÃÂäøÃÂÃ¥ñäçÃÂîéÃÂÃÂäøÃÂÃ¥ûúçëàDOS æÃÂùæìáæêÃÂ(.bat)ïüÃÂÃÂ¥ÃÂ
çÃ¥îùÃ¥æÃÂäøÃÂïüà| |
<pre> | <pre> | ||
zip -r chrome/tuttoolbar.jar -@ < chrome/jarzip.txt | zip -r chrome/tuttoolbar.jar -@ < chrome/jarzip.txt | ||
zip -r tuttoolbar.xpi -@ < xpizip.txt</pre> | zip -r tuttoolbar.xpi -@ < xpizip.txt</pre> | ||
− | + | Ã¥æÃÂäýàæÃÂÃÂèæÃÂïüÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèÿðæêÃÂçÃÂøçÃÂöçðáÃÂ¥ÃÂîãÃÂÃÂçÃÂöèÃÂÃÂïüÃÂäýàçÃÂÃÂæÃÂÃÂèÿðæêÃÂÃÂ¥ÃÂïèÃÂýæïÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂôèäÃÂéÃÂÃÂãÃÂÃÂæÃÂÃÂçÃÂèäþÃÂÃ¥ûúçëàGooglebar Lite çÃÂÃÂæÃÂÃÂèÿðæêÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂæÃÂôÃ¥äÃÂäúÃÂãÃÂÃÂÃ¥îÃÂÃÂ¥ÃÂïäûÃ¥çÃÂúæÃÂÃÂèÃÂêÃÂ¥ÃÂÃÂæÃÂôæÃÂðæÃÂÃÂæÃÂÃÂçÃÂÃÂçÃÂÃÂæÃÂìäûãèÃÂÃÂïüÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂæêÃÂæáÃÂçÃÂÃÂÃ¥ðÃÂèãÃÂãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèÿðæêÃÂæÃÂïçÃÂè Perl Ã¥îÃÂæÃÂÃÂçÃÂÃÂïüÃÂèÃÂÃÂäøÃÂäýÿçÃÂè 1.0.x çÃÂÃÂÃ¥îÃÂèãÃÂæÃÂùæáÃÂ(èÃÂÃÂéÃÂÃÂäûýæÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂäúÃÂÃ¥þîçÃÂÃÂäøÃÂÃÂ¥ÃÂÃÂ)ãÃÂÃÂæÃÂÃÂæÃÂÃÂäþÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂÃÂèÿðæêÃÂçõææÃÂÃÂèÃÂÃÂèöãçÃÂÃÂäúúïüÃÂ[[http://www.borngeek.com/firefox/toolbar-tutorial/samples/build_script.txt View the Googlebar Lite Build Script]]ãÃÂà| |
== (Ant Support) == | == (Ant Support) == | ||
− | + | Ã¥æÃÂæÃÂÃÂäýàÃ¥ïçéáÃÂäýÿçÃÂè Ant äþÃÂÃ¥ûúçëÃÂäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂèÃÂà[http://www.borngeek.com/firefox/toolbar-tutorial/samples/ant_build.xml sample XML file] sent in by [http://www.clippingdale.com/ 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 | + | == JavaScript äøûæÃÂçÃÂ¥ÃÂðçôÃÂéÃÂà(Logging to the JavaScript Console) == |
− | + | æøìèéæ JavaScript çèÃÂÃ¥üÃÂçâüçÃÂÃÂÃ¥åýæÃÂùæóÃÂÃ¥ðñæÃÂïÃÂ¥ÃÂè JavaScript äøûæÃÂçÃÂ¥ÃÂðäøÃÂÃÂ¥ÃÂðÃÂ¥ÃÂúéÃÂäéÃÂïÃÂ¥ÃÂüïüÃÂäýàÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂè ãÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ > JavaScript äøûæÃÂçÃÂ¥ÃÂðãÃÂÃÂéÃÂÃÂÃÂ¥ÃÂÃÂãÃÂÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ÿÃÂ
éàÃÂÃÂ¥ÃÂ
ÃÂÃ¥þÃÂÃÂ¥ÃÂð nsIConsoleService äûÃÂéÃÂâçÃÂÃÂÃ¥ïæéëÃÂ(instance)ïüÃÂäøÃÂéÃÂâæÃÂïçèÃÂÃ¥üÃÂçâüçÃÂÃÂçÃÂÃÂæîõïüà| |
<pre> | <pre> | ||
const TutTB_ConsoleService = | const TutTB_ConsoleService = | ||
行 1,786: | 行 1,787: | ||
classes['@mozilla.org/consoleservice;1']. | classes['@mozilla.org/consoleservice;1']. | ||
getService(Components.interfaces.nsIConsoleService);</pre> | getService(Components.interfaces.nsIConsoleService);</pre> | ||
− | + | æóèæÃÂÃÂÃÂ¥ÃÂðæÃÂÃÂÃÂ¥ÃÂÃÂçÃÂèäúàTutTB_ çÃÂÃÂÃÂ¥ÃÂÃÂçýîèéÃÂïüÃÂÃ¥ðñÃ¥æÃÂæÃÂÃÂäýÿçÃÂèæÃÂüæÃÂÃÂæÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂèÃÂÃÂèîÃÂæÃÂøäøÃÂæèããÃÂÃÂäøÃÂæÃÂææÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂéÃÂÃÂÃÂ¥ÃÂÃÂæÃÂçÃÂ¥ÃÂöÃÂ¥ÃÂðÃ¥ïæéëÃÂ(console instance)ïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðñÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèÃ¥îÃÂäþÃÂç÷èÃ¥ïëèÃÂêÃ¥÷ñçÃÂÃÂèèÃÂæÃÂïãÃÂÃÂäøÃÂéÃÂâçÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂæÃÂÃÂÃ¥ùëæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥îÃÂæÃÂÃÂéÃÂÃÂäûöäúÃÂïüà| |
<pre> | <pre> | ||
function TutTB_Log(aMessage) | function TutTB_Log(aMessage) | ||
行 1,792: | 行 1,793: | ||
TutTB_ConsoleService.logStringMessage('Tut_Toolbar: ' + aMessage); | TutTB_ConsoleService.logStringMessage('Tut_Toolbar: ' + aMessage); | ||
}</pre> | }</pre> | ||
− | + | Ã¥ïæéÃÂÃÂäøÃÂïüÃÂäýàæÃÂÃÂèéòæÃÂùèîÃÂÃÂ¥ÃÂèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöäøÃÂãÃÂÃÂMy_Extension:ãÃÂÃÂçÃÂÃÂèèÃÂæÃÂïéÃÂèäûýÃÂ¥ÃÂÃÂçèñãÃÂÃÂèÃÂÃÂçÃÂñäýÿçÃÂèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂçèñäþÃÂçÃÂöÃÂ¥ÃÂÃÂçýîèéÃÂïüÃÂäýàÃÂ¥ÃÂïäûÃ¥æÃÂôÃ¥îùæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥þÃÂÃÂ¥ÃÂêäúÃÂèèÃÂæÃÂïæÃÂïèæÃÂçÃÂÃ¥éÃÂÃÂçÃÂÃÂãÃÂÃÂçÃÂþÃÂ¥ÃÂèïüÃÂèîÃÂÃÂ¥ÃÂýÃ¥üÃÂäýÃÂçÃÂèäùÃÂÃ¥þÃÂïüÃÂæÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂèçèÃÂÃ¥üÃÂçâüäøÃÂçÃÂÃÂäûûäøÃÂäýÃÂçýîäþÃÂÃÂ¥ÃÂüÃÂ¥ÃÂëÃ¥îÃÂïüÃÂäûÃ¥éáïçäúéÃÂäéÃÂïèèÃÂæÃÂïïüà| |
<pre>TutTB_Log("The value of the URL variable is: " + URL);</pre> | <pre>TutTB_Log("The value of the URL variable is: " + URL);</pre> | ||
− | + | èèÃÂÃ¥þÃÂäøÃÂÃ¥îÃÂèæÃÂÃÂ¥ÃÂèçÃÂüèáèäýàçÃÂÃÂÃÂ¥ÃÂ¥ÃÂäûöÃÂ¥ÃÂÃÂççûéÃÂäéÃÂÃÂÃÂ¥ÃÂÃÂÃÂ¥ÃÂýÃ¥üÃÂãÃÂÃÂäøÃÂçÃÂöïüÃÂéÃÂÃÂäøÃÂÃÂ¥ÃÂêæÃÂïéÃÂÃÂäýÃÂäøûæÃÂçÃÂ¥ÃÂðçôÃÂéÃÂÃÂçÃÂÃÂéÃÂÃÂÃ¥úæïüÃÂéÃÂÃÂÃ¥âÃÂÃÂ¥ÃÂàäúÃÂäýÿçÃÂèèÃÂÃÂ
äøûæÃÂçÃÂ¥ÃÂðèæÃÂçêÃÂçÃÂÃÂéÃÂÃÂÃ¥ÿÃÂ
èæÃÂèèÃÂæÃÂïãÃÂÃÂèæÃÂæÃÂôéÃÂòäøÃÂæÃÂÃÂ¥ÃÂ¥ÃÂðäúÃÂèçã JavaScript äøûæÃÂçÃÂ¥ÃÂðïüÃÂÃÂ¥ÃÂïäûÃÂ¥ÃÂ¥ÃÂÃÂèÃÂà[http://kb.mozillazine.org/JavaScript_Console 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 ÃÂ¥ÃÂÃÂ
èãÃÂÃÂ¥ÃÂèäøÃÂèõ÷ïüÃÂäýÃÂæÃÂïéàÃÂèèÃÂæÃÂïäøÃÂÃ¥îÃÂèãÃÂçÃÂÃÂïüÃÂäýàÃ¥ÿÃÂ
éàÃÂäýÿçÃÂèéÃÂòéÃÂÃÂÃ¥îÃÂèãÃÂäþÃÂÃ¥îÃÂèãÃÂéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
֋ÃÂÃÂäøÃÂæÃÂæÃÂ¥ÃÂïäûÃ¥äýÿçÃÂèæÃÂÃÂïüÃÂÃ¥ðñæÃÂÃÂæÃÂÃÂèñÃÂÃ¥ïÃÂçÃÂÃÂèóÃÂèèÃÂÃÂ¥ÃÂïäûÃ¥çÃÂòÃ¥þÃÂïüÃÂæÃÂÃÂäûÃ¥äýàèæÃÂÃÂ¥ÃÂ
ÃÂÃÂ¥ÃÂøæÃÂÃÂÃ¥æÃÂäýÃÂäýÿçÃÂèÃ¥îÃÂãÃÂà| |
− | + | ÃÂ¥ÃÂèäøÃÂäúÃÂçöòéàÃÂÃÂ¥ÃÂïäûÃ¥æÃÂþÃÂ¥ÃÂðéÃÂÃÂæèãçÃÂÃÂäûÃÂçôùïüà| |
* [http://books.mozdev.org/html/mozilla-app-b-sect-3.html The DOM Inspector] (from Creating Applications with Mozilla) | * [http://books.mozdev.org/html/mozilla-app-b-sect-3.html The DOM Inspector] (from Creating Applications with Mozilla) | ||
* [http://www.mozilla.org/projects/inspector/faq.html DOM Inspector FAQ] | * [http://www.mozilla.org/projects/inspector/faq.html DOM Inspector FAQ] | ||
− | + | éÃÂÃÂæÃÂïÃ¥ùëÃÂ¥ÃÂéæÃÂÃÂÃÂ¥ÃÂÃÂÃ¥ðÃÂæÃÂþ XUL èèÃÂèèÃÂÃÂ¥ÃÂÃÂéáÃÂçÃÂÃÂæÃÂÃÂÃ¥åýÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ïüÃÂÃ¥îÃÂÃÂ¥ÃÂïäûÃ¥èîÃÂäýàæêâèæÃÂÃ¥äÃÂÃÂ¥ÃÂàXUL ÃÂ¥ÃÂ
ÃÂçôàçÃÂÃÂèêÃÂæóÃÂãÃÂÃÂæÃÂÃÂÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàÃÂ¥ÃÂûÃÂ¥ÃÂøçÿÃÂÃ¥æÃÂäýÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷ÃÂ¥ÃÂ¥ÃÂ
÷ïüÃÂéÃÂÃÂéûÃÂçÃÂøçÃÂöÃ¥îùæÃÂÃÂïüÃÂèÃÂÃÂäøÃÂäýàæÃÂÃÂÃ¥ðÃÂæÃÂüÃÂ¥ÃÂøæÃÂÃÂäýÿçÃÂèéÃÂÃÂéàÃÂ
Ã¥÷ÃÂ¥ÃÂ¥ÃÂ
־ÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂÃ¥øøÃÂ¥ÃÂðéëÃÂèÃÂÃÂãÃÂà| |
− | {{link| | + | {{link|æÃÂÃÂäûöÃ¥ðÃÂæáÃÂ|éÃÂÃÂçÃÂüäúúÃÂ¥ÃÂáæÃÂÃÂäûöäøûéàÃÂ}} |
於 2008年9月30日 (二) 15:00 的修訂
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 Ã¥àÃÂçôàçÃÂÃÂèêÃÂæóÃÂãÃÂÃÂæÃÂÃÂÃ¥ü÷çÃÂÃÂÃ¥ûúèÃÂðäýàÃÂ¥ÃÂûÃÂ¥ÃÂøçÿÃÂÃ¥æÃÂäýÃÂäýÿçÃÂèéÃÂÃÂÃÂ¥ÃÂÃÂÃ¥÷Ã¥åà÷ïüÃÂéÃÂÃÂéûÃÂçÃÂøçÃÂöÃ¥îùæÃÂÃÂïüÃÂèÃÂÃÂäøÃÂäýàæÃÂÃÂÃ¥ðÃÂæÃÂüÃÂ¥ÃÂøæÃÂÃÂäýÿçÃÂèéÃÂÃÂéààÃ¥÷Ã¥åà÷æÃÂÃÂÃÂ¥ÃÂðéÃÂÃÂÃ¥øøÃÂ¥ÃÂðéëÃÂèÃÂÃÂãÃÂÃÂ