Smart Bookmarklets:

I've been a longtime fan of Galeon for a web browser, but it's recently fallen behind Firefox as far as features go (primarily due to Firefox's great third-party extension library). Unfortunately, Firefox lacks what I consider the single most useful feature of Galeon: smart bookmarks.

Now, you're thinking to yourself, "but Firefox does have smart bookmarks!" For those of you not familiar with these things, the basic idea is that you can assign a keyword (eg. "wiki") to a specially-formatted bookmark, such that if you type something like "wiki firefox" into the location bar, it will search Wikipedia for the word "firefox." How does Galeon do this differently? Well, what if you really just wanted to go directly to the Wikipedia home page and not perform a search? Galeon bookmarks have two addresses: one for searching, and one if you don't include a search phrase. Firefox, in the interest of not confusing more inexperienced users, has opted for the more simplistic approach, but I personally find it rather annoying to need two keywords for every page (sometimes I really do just want to go to a website's homepage instead of searching it).

What you'll find below are my solution to this problem. By using javascript, I have been able to replicate Galeon's functionality within firefox. All you need to do is right-click on the link and add it as a bookmark (or if that doesn't work, copy the javascript code into a new bookmark); I've even provided a suggested keyword

I've recently switched from a Linux desktop computer to a Macbook. Along with this comes a switch to Safari, which doesn't support bookmark keywords at all, and limits your search engines to a single option. Enter Quicksilver, an application which not only lets you have web search options, but can do oh so much more (you'll just have to visit their site to find out). The qss-http:// bookmarks are intended for the Web Search plugin for Quicksilver. No need for javascript here, just paste the link into your Quicksilver catalog and search away.

keyword description
Search Engines
a9 Search Amazon's A9
http://www.a9.com/
http://www.a9.com/%s qss-http://www.a9.com/***
javascript:location.href='http://www.a9.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'%s')
? Search Google
http://www.google.com/
http://www.google.com/search?q=%s qss-http://www.google.com/search?q=***
javascript:location.href='http://www.google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'search?q=%s')
img Search Google Images
http://images.google.com/
http://images.google.com/images?&q=%s qss-http://images.google.com/images?&q=***
javascript:location.href='http://images.google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'images?&q=%s')
map Search Google Maps for an address
http://maps.google.com/
http://maps.google.com/maps?&q=%s qss-http://maps.google.com/maps?&q=***
javascript:location.href='http://maps.google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'maps?&q=%s')
news Search Google News
http://news.google.com/
http://news.google.com/news?&q=%s qss-http://news.google.com/news?&q=***
javascript:location.href='http://news.google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'news?&q=%s')
local Search for something near Seattle, WA
http://local.google.com/
http://local.google.com/local?sc=1&hl=en&q=%s&near=seattle%2C+wa qss-http://local.google.com/local?sc=1&hl=en&q=***&near=seattle%2C+wa
javascript:location.href='http://local.google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'local?sc=1&hl=en&q=%s&near=seattle%2C+wa')
lucky Go directly to Google's best guess for your search.
http://google.com/
http://google.com/search?btnI&q=%s qss-http://google.com/search?btnI&q=***
javascript:location.href='http://google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'search?btnI&q=%s')
gmail Read or search your google mail account.
https://mail.google.com/mail/
https://mail.google.com/mail/?view=tl&fs=1&start=0&sourceid=mozilla-search&search=query&q=%s qss-https://mail.google.com/mail/?view=tl&fs=1&start=0&sourceid=mozilla-search&search=query&q=***
javascript:location.href='https://mail.google.com/mail/'+(('%s'=='%'+'s'||'%s'=='')?'':'?view=tl&fs=1&start=0&sourceid=mozilla-search&search=query&q=%s')
Entertainment
freedb Search freedb.org for an artist or song title.
http://www.freedb.org/
http://www.freedb.org/freedb_search.php?words=%s&allfields=NO&fields=artist&fields=title&allcats=YES&grouping=none qss-http://www.freedb.org/freedb_search.php?words=***&allfields=NO&fields=artist&fields=title&allcats=YES&grouping=none
javascript:location.href='http://www.freedb.org/'+(('%s'=='%'+'s'||'%s'=='')?'':'freedb_search.php?words=%s&allfields=NO&fields=artist&fields=title&allcats=YES&grouping=none')
imdb Search IMDB for a movie, actor, etc.
http://www.imdb.com/
http://www.imdb.com/Find?select=All&for=%s qss-http://www.imdb.com/Find?select=All&for=***
javascript:location.href='http://www.imdb.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'Find?select=All&for=%s')
kcls Search the king county library system
http://catalog.kcls.org/
http://catalog.kcls.org/search/a?searchtype=Y&searcharg=%s&SORT=D&searchscope=1 qss-http://catalog.kcls.org/search/a?searchtype=Y&searcharg=***&SORT=D&searchscope=1
javascript:location.href='http://catalog.kcls.org/'+(('%s'=='%'+'s'||'%s'=='')?'':'search/a?searchtype=Y&searcharg=%s&SORT=D&searchscope=1')
spl Search the king county library system
http://www.spl.org/
https://catalog.spl.org/ipac20/ipac.jsp?index=.GW&term=%s qss-https://catalog.spl.org/ipac20/ipac.jsp?index=.GW&term=***
javascript:location.href='http'+(('%s'=='%'+'s'||'%s'=='')?'://www.spl.org/':'s://catalog.spl.org/ipac20/ipac.jsp?index=.GW&term=%s')
netflix Search Netflix
http://www.netflix.com/
http://www.netflix.com/Search?v1=%s qss-http://www.netflix.com/Search?v1=***
javascript:location.href='http://www.netflix.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'Search?v1=%s')
rt Search Rotten Tomatoes for a movie
http://www.rottentomatoes.com/
http://www.rottentomatoes.com/search/full_search.php?search=%s qss-http://www.rottentomatoes.com/search/full_search.php?search=***
javascript:location.href='http://www.rottentomatoes.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'search/full_search.php?search=%s')
Package Tracking
dhl Track a package through DHL
http://www.dhl-usa.com/
http://track.dhl-usa.com/atrknav.asp?ShipmentNumber=%s qss-http://track.dhl-usa.com/atrknav.asp?ShipmentNumber=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'www.dhl-usa.com/':'track.dhl-usa.com/atrknav.asp?ShipmentNumber=%s')
fedex Track a package through FedEx
http://www.fedex.com/us/
http://www.fedex.com/Tracking?tracknumbers=%s qss-http://www.fedex.com/Tracking?tracknumbers=***
javascript:location.href='http://www.fedex.com/'+(('%s'=='%'+'s'||'%s'=='')?'us/':'Tracking?tracknumbers=%s')
ups Track a package through UPS
http://www.ups.com/
http://wwwapps.ups.com/etracking/tracking.cgi?TypeOfInquiryNumber=T&HTMLVersion=4.0&InquiryNumber1=%s&track=Track qss-http://wwwapps.ups.com/etracking/tracking.cgi?TypeOfInquiryNumber=T&HTMLVersion=4.0&InquiryNumber1=***&track=Track
javascript:location.href='http://www'+(('%s'=='%'+'s'||'%s'=='')?'.ups.com/':'apps.ups.com/etracking/tracking.cgi?TypeOfInquiryNumber=T&HTMLVersion=4.0&InquiryNumber1=%s&track=Track')
usps Track a package through the USPS
http://www.usps.com
http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?strOrigTrackNum=%s qss-http://trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?strOrigTrackNum=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'www.usps.com':'trkcnfrm1.smi.usps.com/PTSInternetWeb/InterLabelInquiry.do?strOrigTrackNum=%s')
Reference
apache Search the apache 2.0 manual.
http://httpd.apache.org/docs-2.0/
http://www.google.com/search?as_sitesearch=httpd.apache.org&q=%s qss-http://www.google.com/search?as_sitesearch=httpd.apache.org&q=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'httpd.apache.org/docs-2.0/':'www.google.com/search?as_sitesearch=httpd.apache.org&q=%s')
cpan Search CPAN
http://search.cpan.org/
http://search.cpan.org/search?query=%s qss-http://search.cpan.org/search?query=***
javascript:location.href='http://search.cpan.org/'+(('%s'=='%'+'s'||'%s'=='')?'':'search?query=%s')
mysql Search the MySQL manual.
http://dev.mysql.com/doc/mysql/
http://dev.mysql.com/doc/mysql/search.php?q=%s qss-http://dev.mysql.com/doc/mysql/search.php?q=***
javascript:location.href='http://dev.mysql.com/doc/mysql/'+(('%s'=='%'+'s'||'%s'=='')?'':'search.php?q=%s')
netcraft Look a server up at netcraft.
http://uptime.netcraft.com/up/graph/
http://uptime.netcraft.com/up/graph/?mode_u=off&mode_w=on&site=%s&submit=Examine qss-http://uptime.netcraft.com/up/graph/?mode_u=off&mode_w=on&site=***&submit=Examine
javascript:location.href='http://uptime.netcraft.com/up/graph/'+(('%s'=='%'+'s'||'%s'=='')?'':'?mode_u=off&mode_w=on&site=%s&submit=Examine')
pear Search the PEAR archives.
http://pear.php.net/
http://pear.php.net/search.php?q=%s qss-http://pear.php.net/search.php?q=***
javascript:location.href='http://pear.php.net/'+(('%s'=='%'+'s'||'%s'=='')?'':'search.php?q=%s')
perldoc Search the perl documentation.
http://perldoc.perl.org/
http://perldoc.perl.org/search.html?q=%s qss-http://perldoc.perl.org/search.html?q=***
javascript:location.href='http://perldoc.perl.org/'+(('%s'=='%'+'s'||'%s'=='')?'':'search.html?q=%s')
php Search the PHP manual.
http://www.php.net/manual/en/
http://www.php.net/search.php?lang=en&show=quickref&pattern=%s qss-http://www.php.net/search.php?lang=en&show=quickref&pattern=***
javascript:location.href='http://www.php.net/'+(('%s'=='%'+'s'||'%s'=='')?'manual/en/':'search.php?lang=en&show=quickref&pattern=%s')
psql Search the PostgreSQL manual.
http://www.postgresql.org/docs/8.2/interactive/index.html
http://search.postgresql.org/search?u=%2Fdocs%2F8.2%2Finteractive%2F&q=%s qss-http://search.postgresql.org/search?u=%2Fdocs%2F8.2%2Finteractive%2F&q=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'www.postgresql.org/docs/8.2/interactive/index.html':'search.postgresql.org/search?u=%2Fdocs%2F8.2%2Finteractive%2F&q=%s')
tt Search the perl template-toolkit manual.
http://template-toolkit.org/docs/index.html
http://www.google.com/search?as_sitesearch=template-toolkit.org/docs&q=%s qss-http://www.google.com/search?as_sitesearch=template-toolkit.org/docs&q=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'template-toolkit.org/docs/index.html':'www.google.com/search?as_sitesearch=template-toolkit.org/docs&q=%s')
mw Search the Merriam-Webster dictionary.
http://m-w.com/
http://m-w.com/cgi-bin/dictionary?book=Dictionary&va=%s qss-http://m-w.com/cgi-bin/dictionary?book=Dictionary&va=***
javascript:location.href='http://m-w.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'cgi-bin/dictionary?book=Dictionary&va=%s')
wiki Search Wikipedia.
http://en.wikipedia.org/
http://en.wikipedia.org/wiki/Special:Search?search=%s qss-http://en.wikipedia.org/wiki/Special:Search?search=***
javascript:location.href='http://en.wikipedia.org/'+(('%s'=='%'+'s'||'%s'=='')?'':'wiki/Special:Search?search=%s')
Shopping
amazon Search amazon.com
http://www.amazon.com/
http://www.amazon.com/exec/obidos/external-search?mode=blended&keyword=%s qss-http://www.amazon.com/exec/obidos/external-search?mode=blended&keyword=***
javascript:location.href='http://www.amazon.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'exec/obidos/external-search?mode=blended&keyword=%s')
buy Search buy.com
http://www.buy.com/
http://www.buy.com/retail/searchresults.asp?qu=%s qss-http://www.buy.com/retail/searchresults.asp?qu=***
javascript:location.href='http://www.buy.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'retail/searchresults.asp?qu=%s')
cooking Search cooking.com
http://www.cooking.com/
http://www.cooking.com/products/shprodli.asp?Keywords=%s qss-http://www.cooking.com/products/shprodli.asp?Keywords=***
javascript:location.href='http://www.cooking.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'products/shprodli.asp?Keywords=%s')
ebay Search ebay
http://www.ebay.com/
http://search.ebay.com/search/search.dll?MfcISAPICommand=GetResult&ht=1&SortProperty=MetaEndSort&query=%s qss-http://search.ebay.com/search/search.dll?MfcISAPICommand=GetResult&ht=1&SortProperty=MetaEndSort&query=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'www.ebay.com/':'search.ebay.com/search/search.dll?MfcISAPICommand=GetResult&ht=1&SortProperty=MetaEndSort&query=%s')
wallet Search Fat Wallet
http://www.fatwallet.com/
http://search.fatwallet.com/vivisimo/cgi-bin/query-meta?input-form=simple&query=%s qss-http://search.fatwallet.com/vivisimo/cgi-bin/query-meta?input-form=simple&query=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'www.fatwallet.com/':'search.fatwallet.com/vivisimo/cgi-bin/query-meta?input-form=simple&query=%s')
froogle Search froogle
http://froogle.google.com/
http://froogle.google.com/froogle?q=%s qss-http://froogle.google.com/froogle?q=***
javascript:location.href='http://froogle.google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'froogle?q=%s')
overstock Search froogle
http://www.overstock.com/
http://www.overstock.com/cgi-bin/d2.cgi?PAGE=ENDECA&keywords=%s qss-http://www.overstock.com/cgi-bin/d2.cgi?PAGE=ENDECA&keywords=***
javascript:location.href='http://www.overstock.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'cgi-bin/d2.cgi?PAGE=ENDECA&keywords=%s')
newegg Search newegg
http://www.newegg.com/
http://www.newegg.com/Product/ProductList.asp?Submit=ENE&N=0&Description=%s qss-http://www.newegg.com/Product/ProductList.asp?Submit=ENE&N=0&Description=***
javascript:location.href='http://www.newegg.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'Product/ProductList.asp?Submit=ENE&N=0&Description=%s')
zipzoom Search ZipZoomFly
http://www.zipzoomfly.com/
http://www.zipzoomfly.com/jsp/Search.jsp?Category=00&Key=%s&SearchBy=PRC_CPRICE qss-http://www.zipzoomfly.com/jsp/Search.jsp?Category=00&Key=***&SearchBy=PRC_CPRICE
javascript:location.href='http://www.zipzoomfly.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'jsp/Search.jsp?Category=00&Key=%s&SearchBy=PRC_CPRICE')
price Search PriceGrabber
http://www.pricegrabber.com/
http://www.pricegrabber.com/search_gen.php?form_keyword=%s qss-http://www.pricegrabber.com/search_gen.php?form_keyword=***
javascript:location.href='http://www.pricegrabber.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'search_gen.php?form_keyword=%s')
lowes Search Lowes Home Improvement
http://www.lowes.com/
http://www.lowes.com//lowes/lkn?action=search&query=%s qss-http://www.lowes.com//lowes/lkn?action=search&query=***
javascript:location.href='http://www.lowes.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'/lowes/lkn?action=search&query=%s')
homedepot Search Home Depot
http://www.homedepot.com/
http://www.homedepot.com/prel80/HDUS/EN_US/diy_main/pg_diy.jsp?CNTTYPE=PROD_META&CNTKEY=misc%2FsearchResults.jsp&keyword=%s qss-http://www.homedepot.com/prel80/HDUS/EN_US/diy_main/pg_diy.jsp?CNTTYPE=PROD_META&CNTKEY=misc%2FsearchResults.jsp&keyword=***
javascript:location.href='http://www.homedepot.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'prel80/HDUS/EN_US/diy_main/pg_diy.jsp?CNTTYPE=PROD_META&CNTKEY=misc%2FsearchResults.jsp&keyword=%s')
Software
fm Search Fresh Meat for software
http://freshmeat.net/
http://freshmeat.net/search?q=%s qss-http://freshmeat.net/search?q=***
javascript:location.href='http://freshmeat.net/'+(('%s'=='%'+'s'||'%s'=='')?'':'search?q=%s')
rpm Search rpmfind mirror
http://rpmfind.net/
http://rpmfind.net/linux/rpm2html/search.php?query=%s qss-http://rpmfind.net/linux/rpm2html/search.php?query=***
javascript:location.href='http://rpmfind.net/'+(('%s'=='%'+'s'||'%s'=='')?'':'linux/rpm2html/search.php?query=%s')
Stocks/Funds
morningstar Search Morningstar ratings for a ticker symbol.
http://www.morningstar.com/
http://quicktake.morningstar.com/Fund/Snapshot.asp?Symbol=%s qss-http://quicktake.morningstar.com/Fund/Snapshot.asp?Symbol=***
javascript:location.href='http://'+(('%s'=='%'+'s'||'%s'=='')?'www.morningstar.com/':'quicktake.morningstar.com/Fund/Snapshot.asp?Symbol=%s')
q Search Scottrade's ValueLine for a mutual fund symbol.
http://sites.stockpoint.com/scottrade/
http://sites.stockpoint.com/scottrade/quote.asp?Symbol=%s qss-http://sites.stockpoint.com/scottrade/quote.asp?Symbol=***
javascript:location.href='http://sites.stockpoint.com/scottrade/'+(('%s'=='%'+'s'||'%s'=='')?'':'quote.asp?Symbol=%s')
gf Search Google Finance for a ticker symbol.
http://finance.google.com/
http://finance.google.com/finance?q=%s qss-http://finance.google.com/finance?q=***
javascript:location.href='http://finance.google.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'finance?q=%s')
yf Search Yahoo Finance for a ticker symbol.
http://finance.yahoo.com/
http://finance.yahoo.com/q?s=%s qss-http://finance.yahoo.com/q?s=***
javascript:location.href='http://finance.yahoo.com/'+(('%s'=='%'+'s'||'%s'=='')?'':'q?s=%s')

More Bookmarklets:

The following somewhat random collection of bookmarklets do not necessarily take you to a new location, nor are any of them entirely (or even at all) my own creations, but I find all of them quite useful.

keyword description
Helpful Tasks
fix Revert all form input fields to my preferred color set, overriding anything specified by the website's own CSS.
javascript:(function(){traverse(window); function traverse(w){var styles='input.xris_fixed_colors, textarea, select{background: #090916 ! important; color: #C3C3D0 !important; }'; var doc=w.document; if(doc.createStyleSheet){doc.createStyleSheet("javascript:'"+styles+"'"); }else{var newSS=doc.createElement('link'); newSS.rel='stylesheet'; newSS.href='data:text/css,'+escape(styles); doc.getElementsByTagName("head")[0].appendChild(newSS); }/* fix all of the fields in this frame */ var F=doc.forms; for(var j=0; j<F.length; j++){var f=F[j]; for(var i=0; i<f.length; i++){if(f[i].type.toLowerCase()=="password" || f[i].type.toLowerCase()=="text")f[i].className +=' xris_fixed_colors'; }}/* Handle any subframes */ if(w && w.frames){for(var i=0; i<w.frames.length; i++){traverse(w.frames[i]); }}}})();
Turns the first password element it finds into plain text.
javascript:(function(){var F=document.forms; for(var j=0; j<F.length; j++){var f=F[j]; for(var i=0; i<f.length; i++){if(f[i].type.toLowerCase()=='password')f[i].type='text'; }}})();
tiny Send the current page to tinyurl.com
javascript:void(location.href='http://tinyurl.com/create.php?url='+location.href)
Disable some html functions that tell the browser not to let you choose to auto-fill a password field.
javascript:(function(){var ca,cea,cs,df,dfe,i,j,x,y; function n(i,what){return i+' '+what+((i==1)?'':'s')}ca=cea=cs=0; df=document.forms; for(i=0; i<df.length; ++i){x=df[i]; dfe=x.elements; if(x.onsubmit){x.onsubmit=''; ++cs; }if(x.attributes['autocomplete']){x.attributes['autocomplete'].value='on'; ++ca; }for(j=0; j<dfe.length; ++j){y=dfe[j]; if(y.attributes['autocomplete']){y.attributes['autocomplete'].value='on'; ++cea; }}}alert('Removed autocomplete=off from '+n(ca,'form')+' and from '+n(cea,'form element')+', and removed onsubmit from '+n(cs,'form')+'. After you type your password and submit the form, the browser will offer to remember your password.')})();
Convert "post" forms to "get" ones.
javascript:(function(){var x,i; x=document.forms; for(i=0; i < x.length; ++i)x[i].method='get'; alert('Changed ' + x.length + ' forms to use the GET method. After submitting a form from this page, you should be able to bookmark the result.'Z); })();
Hide any elements that would load a browser plugin.
javascript:(function(){function R(w){try{var d=w.document,j,i,t,T,N,b,r=1,C; for(j=0; t=['object','embed','applet','iframe'][j]; ++j){T=d.getElementsByTagName(t); for(i=T.length-1; (i+1)&&(N=T[i]); --i)if(j!=3||!R((C=N.contentWindow)?C:N.contentDocument.defaultView)){b=d.createElement('div'); b.style.width=N.width; b.style.height=N.height; b.innerHTML='<del>'+(?'third-party '+t:t)+'</del>'; N.parentNode.replaceChild(b,N); }}}catch(E){r=0}return r}R(self); var i,x; for(i=0; x=frames[i]; ++i)R(x)})()