Minirozšíření jdem.cz

2008-06-15 23:28 napsal Lukáš Havrlant

Docela jsem si oblíbil český web jdem.cz provozovaný Arthurem Dentem. Jen mě tak nějak vždycky na Opeře štvalo, že to pro neexistuje nějaké pohodlné rozšíření. Jakožto uživatel mám k dispozici pouze obecný bookmarklet, kterýžto má ale jednu zásadní vadu: po kliknutí se javascriptem otevře okénko, z kterého musím ručně zkopírovat odkaz a následně toto okno ještě zavřít. To mi přišlo takové neohrabané, respektive zdlouhavé. O něco lepší je rozšíření pro Firefox, ale tam mě zase nebavilo klikat na nástroje → jdem.cz → odkaz z aktuální adresy. Hmm, věčně nespokojený Lukáš :-).

A z oné mé nespokojenosti vzešel nápad udělat si vlastní jednoduché rozšíření pro jdem.cz; když už má jdem.cz přímo napsané API, tak proč ho nevyužít. Mimochodem za to API opravdu díky, respektive hlavně díky za ukázkový kód v PHP, předtím jsem tu adresu lovil přes file_get_contents, ale to nesežralo identifikátor za kanálkem #. No jo, já a PHP.

Tak tedy představuji další bookmarklet pro jdem.cz:

Zkrátit!

A teď v čem je to jiné – po kliknutí na bookmarklet se otevře stránka, kde se zavolá jdem.cz, které zkrátí adresu. Následně se tato adresa přes flash (spolehlivé javascript only řešení jsem nenašel) přímo nakopíruje do schránky a okno se navíc ještě zavře. Zde jsem ještě musel dát krátkou prodlevu, protože když jsem okno zavřel hned, prohlížeče s tím měly problémy. Čert ví proč. Bookmarklet je stejný jako originál, jen jsem změnil adresu. Možná by stálo za to to okénko ještě zmenšit. Funguje mi to v Opeře 9.50 i ve FF3; jinde netestováno.

A aby toho nebylo málo, napsal jsem si ještě uživatelský skript, který toto okénko zavolá při stisknutí klávesové zkratky. Zde je:

onkeydown=function()
{
        kldown(event.keyCode);
}

onkeyup=function()
{
        klup(event.keyCode);
}

var klshift=0;
var klalt=0;
var kla=0;

function kldown(k) {
        if(k==16) klshift=1;
        else if(k==18) klalt=1;
        else if(k==88) kla=1;
        if(klshift && klalt && kla) {
                // alert('Stisknuta kombinace ALT+SHIFT+X');
                x99=window.open('http://nastroje.havrlant.net/jdem/?q='+encodeURIComponent(document.location.href),'Jdem.cz','modal=1,status=0,scrollbars=1,toolbar=0,resizable=1,height=100,width=200,left='+(screen.width-785)/2+',top='+(screen.height-550)/2);
                setTimeout('x99.focus()',1000);
                klshift=0;
                klalt=0;
                kla=0;
        }
}

function klup(k) {
        if(k==16) klshift=0;
        else if(k==18) klalt=0;
        else if(k==88) kla=0;
}

Po stisknutí shift + alt + x se zobrazí stejné okno a do schránky se uloží zkrácená verze URL, na které zrovna jste. Původně psáno pro Operu, tu opici pro Javascript na Firefoxu nemám, takže jsem to nezkoušel. Pokud někdo chce jinou klávesovou kombinaci, nechť si skript přepíše, není to zase tak těžké.

Anebo editujte přímo soubor standard_keybo­ard.ini v profilu Opery, což je hafo jednodušší :-). Viz komentáře.

Líbí? Užívejte si to! Nelíbí? Hmm. :-)


Ještě jsem zapomněl poděkovat Měsíčkovi za pomoc při hledání spolehlivého řešení pro kopírování do schránky a DJ Mikymu, který mi nechtě pomohl s klávesovou zkratkou v Javascriptu.

Linkuj.cz!

Komentáře

16. June 2008, 00:13

Dobrá práce! Přesně tohle mi na bookmarkletu taky vadilo :-)

Jinak v Opeře je možné klávesovou zkratku nadefinovat přímo v Nástroje / Nastavení / Pokročilé volby / Myš a klávesnice. Ale přiznám se, že tady to moc neumím, takže si spíš otevřu příslušný INI soubor (tuším keyboard.ini) a přidám do sekce [Application] řádek:

x shift alt="Go to page, "{text bookmarletu}""

16. June 2008, 01:23

Poslušně hlásím plnou funkčnost bookmarkletu ve FF 2.0.0.14
Přestože probliknutí otevírajícího a zavírajícího se okna je lehce nepříjemné, vyvažuje to odměna v podobě uložené adresy ve schránce. Přesně tohle mi na tinyURL schází.

16. June 2008, 01:24

1. David Grudl: Wow, o tom jsem nevěděl, díky za tip ;-).

16. June 2008, 01:34

2. Tomek: Už jsem to okno alespoň zmenšil. Jak se toho zbavit úplně nevím. Zkoušel jsem to okno otevřít na pozadí, ale nijak moc to nepomáhalo.

16. June 2008, 01:43

Ďakujem, ďakujem, ďakujem :)
Taktiež mi presne toto veľmi chýbalo.. Upravil som si daný skript aby pracoval s chod.sk, teraz sa už skracovať bude jednoduchšie.

16. June 2008, 10:21

Ad FF extension: „nástroje → jdem.cz → odkaz z aktuální adresy“ – Mně to funguje na pravé tlačítko myši, schováno pod „Vytvořit krátkou adresu pro tuto stránku“.

Jinak – díky a dotaz: Mohu to publikovat přímo na Jdem? Samosebou s veškerými díky a odkazy na autora?

16. June 2008, 10:52

Vřelé díky, přesně toto mi chybělo pro plné využívání Jdem.cz.

16. June 2008, 10:54

6. Arthur Dent: Určitě ano :-).

16. June 2008, 22:18

Super! Jsem rád, že existují uživatelé Opery a ještě pro ni dokáží dělat „pluginy“ :)

17. June 2008, 11:27

diky tobe se jdem.cz se dostalo z okraje pouzivani do permanence

25. June 2008, 07:15

Jsem uživatelskými skripty nepolíben ;) Prosím o radu, kam s ním a jak ho napojit na tu klábosovou zkratku.

25. June 2008, 11:57

eLKa: V opera:config dej vyhledat „user javascript“. Zatrhni co se dá a nastav si složku, ze které se budou číst javascripty. Do této složky pak nahraj požadovaný javascriptový soubor.

Jednodušší ale je najít ten ini soubor se zkratkami (je někde v profilu Opery, ve složce „keyboards“ myslím) a přidat tam řádek:

x alt="Go to page, "{text bookmarletu}""

Po stisknutí alt+x se spustí bookmarlet. Zkratku si samozřejmě můžeš nastavit jak chceš.

Komentáře jsou uzavřeny