JanKoWeb: Počítače a IT - Javascript: bookmarklety aneb automatizace běžných činností

Javascript: bookmarklety aneb automatizace běžných činností

Bookmarklety jsou kusy javascriptového kódu, který se píše přímo do adresního řádku prohlížeče a dají se tím vykouzlit zajímavé věci.

Jak bookmarklet funguje?

Bookmarklet je kus javascriptového kódu, který se na otevřené stránce napíše (vloží) přímo do adresního řádku jako:

javascript: JAVASCRIPTOVY_KOD;
klíčové slovo "javascript:" říká, že následující text má prohlížeč interpretovat jako Javascriptový kód.

Termín Bookmarklet vznikl spojením slov bookmark and applet.

Bookmarklet běží pouze v prohlížeči, takže pokud se vám něco nezdaří, stačí obnovit původní stránku a vše bude zase jak bylo.

Výhodou bookmarkletu je, že se dá uložit jako obyčejná záložka a může tak být snadno po ruce. Při vytváření záložky stačí jen místo adresy zadat kód bookmarkletu.

Níže uvedené příklady je tedy možné jen zkopírovat a vložit do adresního řádku (a odentrovat).

Příklady praktických bookmarkletů

Otevření nového okna

Pozor na to, že po otevření nové stránky již na ní není možné spouštět javascriptové příkazy.

javascript: void(window.open('http://jankoweb.tode.cz'));
do funkce "void" je to zabaleno, aby původní stránka zůstala netknutá. Pokud se to neudělá, otevře se sice nové okno, ale do původního se vypíše "[object Window]".

Otevření nové stránky

javascript: window.location.href = 'http://jankoweb.tode.cz';

Vytvoření odkazu z označeného textu

Tento skriptík používám, když potřebuji na JanKoWebu citovat nějakou stránku. Označím nadpis a kliknu na bookmarklet. Vyskočí mi okénko s označeným kódem odkazu, který zkopíruji Ctrl+C.

javascript: 
url = window.location; // aktualni adresa stranky
if (window.getSelection){
        q = window.getSelection();
    } else if (document.getSelection) {
        q = document.getSelection();
    } else if (document.selection) {
        q = document.selection.createRange().text;
    }
// v promenne q by nyni mel byt na strance oznaceny text
void(prompt('Copy to clipboard: Ctrl+C, Enter', '<a href=\\''+url+'\\' title=\\''+q+'\\' >'+q+'</a>'));

Okénko s atributy knihy na mlp.cz

Pro pohodlnější psaní recenzí na JanKoWebu jsem si udělal skriptík, který spuštěn na anotaci knihy na mlp.cz vyhodí okénko s popisem knihy.

javascript: 
if (!document.getElementById('tabpopis')) 
alert('JankoSkript: Nemohu najít \\'tabpopis\\'. Jste si jisti, že jste na http://search.mlp.cz?');
popis = document.getElementById('tabpopis').innerHTML;
re=/Autor<\\/td><td>([^<]+)<\\/td>/;
autor=popis.match(re);
re=/Název<\\/td><td>([^<]+)<\\/td>/;
nazev=popis.match(re);
re=/Nakladatel<\\/td><td>([^<]+)<\\/td>/;
nakladatel=popis.match(re);
re=/Rok vydání<\\/td><td>([^<]+)<\\/td>/;
rokvydani=popis.match(re);
re=/Místo vydání<\\/td><td>([^<]+)<\\/td>/;
mistovydani=popis.match(re);
re=/Počet stran<\\/td><td>([^<]+)<\\/td>/;
pocetstran=popis.match(re);
urlTitulek = autor[1] + ': ' + nazev[1];
urlObsah = 'Vydalo nakladatelství ' + nakladatel[1] + ', ' + rokvydani[1] + ', ' + mistovydani[1] + '. Kniha má ' + pocetstran[1] + ' stran.';
alert(urlTitulek + '. ' + urlObsah);

Anketa: Používáte bookmarklety?

Ne, doteď jsem nevěděl, co to je. (38 %) hlasuj
Ano, už jsem o nich slyšel a nějaké používám. (29 %) hlasuj
Ano, je to skvělá věc a sám si občas nějaký napíši. (33 %) hlasuj
Rubrika Počítače a IT | Tagy Bookmarklet | Pá 23.03.2012 | 2392x

Náhodné články

Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.

Aktuální věci publikuji kvůli úspoře času na Twitter.

Honza

"Čas je nejlepší soudce a trpělivost nejlepší mistr."

Guy de Pourtales