**Sovelluskirjanmerkki** (eli **kirjanmerkkisovelma** eli **toimintokirjanmerkki**, engl. **bookmarklet**) on selaimen kirjanmerkkeihin tallennettava pieni sovelma, jonka toiminta on tallennettuna kirjanmerkin URI-osoitteeseen. Tavallisesti sovelluskirjanmerkki on JavaScript-sovellus.

Sovelluskirjanmerkin englanninkielinen nimi, *bookmarklet*, on sanojen *bookmark* ja *applet* sulauma eli suomeksi *kirjanmerkki* ja *sovelma*. Tällä menetelmällä se olisi suomeksi *kirjanmerkelmä*.

Sovelluskirjanmerkin avulla voidaan selaimeen tai verkkosivuun lisätä kertanapsautuksen toiminnallisuutta joko kirjanmerkitse tai verkkosivun linkitse. Sovelluskirjanmerkkiä napsauttaen suoritetaan tietty toiminto, esimerkiksi Etsi-toiminto tai sivun tiedon poiminto.

Toiminnallisuus
---------------

URI-osoitetta käytetään verkkoselaimessa `A`-tunnisteen `href`-määreessä sekä niin ikään kirjanmerkeissä.
URI-osoitteen ensimmäinen osa, kuten `http:`, `file:` tai `ftp:`, valitsee käytettävän yhteyskäytännön sekä määrittää rajoitteet lopulle merkkijonoa. Selaimet toteuttavat myös `javascript:`-liitteen, joka on selaimen jäsentimen silmissä kuin mikä tahansa muu URI-osoite. Sisäisesti selain näkee kyseessä olevan *javascript*-yhteyskäytäntö, ja kohtelee merkkijonoa JavaScript-koodina. Suoritettuaan koodin selain käyttää sen jätöksiä uuden sivun sisältönä.

Suoritettavalla komentojonolla on käsillä olevaan sivuun täysi pääsy ja se voi lukea ja muokata sitä. Mikäli komentojono palauttaa merkkijonon asemesta määrittelemättömän tyypin, selain ei lataakaan uutta sivua, vaan komentojono suoritetaan käsillä olevan sivun sisällölle.

Tämä mahdollistaa sivua uudelleenlataamatta esimerkiksi salaman nopeat kirjasinkoon ja -värin muutokset.

Käyttö
------

Sovelluskirjanmerkki tallennetaan tavallisena kirjanmerkkinä ja sitä käytetään tavallisen kirjanmerkin tapaan. Siten ne ovat yksinkertaisesti toimintoja selaimeen lisääviä, yhden napsautuksen työkaluja.

Esimerkiksi seuraavat toimet ovat mahdollisia sovelluskirjanmerkkien avulla:

* Verkkosivun ulkonäköön vaikuttaminen selaimesta käsin (esimerkiksi kirjasinkoon muuttaminen, taustavärin vaihto).
* Tietojen poimiminen verkkosivulta (esimerkiksi hyperlinkkejä, kuvia, merkkijonoja).
* Videotiedostojen lataaminen verkkosivulta (esimerkiksi YouTube-palvelusta).
* Hakukonehaun suorittaminen valittuna olevan tekstin pohjalta tai käyttäen valintaikkunaa.
* Nykyisen sivun lähettäminen validointipalveluun tai käännöspalveluun.
* Yleisten määritysasetusten asettaminen silloin kun sivu ei itse tarjoa mahdollisuutta asetusten muokkaamiseen.

Sovelluskirjanmerkki asennetaan luomalla uusi kirjanmerkki ja liittämällä tarvittu koodi kirjanmerkin luonti-ikkunan kohdeosoitekenttään. Sovelluskirjanmerkin voi suorittaa lataamalla kirjanmerkki normaalisti.

Tausta
------

Steve Kangas bookmarklets.comista keksi termin "bookmarklet". Hän rupesi luomaan sovelluskirjanmerkkiä Netscapen JavaScript-oppaan esittämän idean pohjalta. Aluksi käytettiin termiä **favelet**; esimerkiksi Tantek Çelik käytti sitä 6. elokuuta 2001 sähköpostiviestissään. Brendan Eich, Netscapen JavaScript-kehittäjiä, kuvasi sovelluskirjanmerkkien alkuperää näin:

|  |
| --- |
| *They were a deliberate feature in this sense: I invented the `javascript:` URL along with JavaScript in 1995, and intended that `javascript:` URLs could be used as any other kind of URL, including being bookmark-able.*
In particular, I made it possible to generate a new document by loading, *e.g.* `javascript:'hello, world'`, but also (key for bookmarklets) to run arbitrary script against the DOM of the current document, e.g. `javascript:alert(document.links[0].href)`. The difference is that the latter kind of URL uses an expression that evaluates to the undefined type in JS. I added the void operator to JS before Netscape 2 shipped to make it easy to discard any non-undefined value in a `javascript:` URL.|Brendan Eich|3=email to Simon Willison
 |

Esimerkki
---------

Tämä esimerkinomainen sovelluskirjanmerkki suorittaa Wikipedia-haun minkä tahansa selainikkunassa valittuna olevan tekstin pohjalta. Normaalikäytössä seuraava JavaScript-koodi asennettaisiin kirjanmerkiksi selaimen kirjanmerkkipalkkiin. Siitä lähtien sovelluskirjanmerkin napsauttaminen minkä tahansa tekstinpätkän valitsemisen jälkeen suorittaa haun.

`javascript:s=document.getSelection();for(i=0;i<frames.length;i++){if(s)break;s=frames[i].document.getSelection();}if(!s)void(s=prompt('Anna%20hakusanat%20Wikipedia-hakua%20varten',''));if(!s=="")wikiw=open('http://fi.wikipedia.org/'+(s?'w/wiki.phtml?search='+escape(s):''));wikiw.focus();`

Lähteet
-------

1. ↑  Verkkotunnus bookmarklets.com rekisteröity 9. huhtikuuta 1998
2. ↑  Sähköposti lähettäjältä Brendan Eich, julkaissut SitePoint osoitteessa  (Arkistoitu – Internet Archive) , päiväys 10. huhtikuuta 2004
3. ↑  Kokeiltu selaimilla Mozilla Firefox, Opera,  Safari, Google Chrome. Ei toimi selaimilla IE7 ja IE8. Alkuperäislähde: Alex Boldt

Aiheesta muualla
----------------

* Marklets.com - Bookmarklet Directory (Arkistoitu – Internet Archive) - Laajin käyttäjävoimin ylläpidetty sovelluskirjanmerkkihakemisto.
* Bookmarklets.com - Ensimmäisiä sovelluskirjanmerkkikokoelmia.
* Jesse's Bookmarklets Site - Ensimmäisiä sovelluskirjanmerkkikokoelmia.
* Bookmarklets Boost Web Surfing (Arkistoitu – Internet Archive), *PC Magazine*, Tara Calishain, 2004-03-04. Haettu 2007-08-31.
* How to Use Is.Gd/Tiny Url/Bookmarklet-X in Chrome - Tehokas tapa Google Chrome-sovelluskirjanmerkkien luontiin, 2009-06-01. Haettu 2009-07-18.