webdesign / development + awesome
archivovaný archívny archív
Predstavte si, že sa vám nepáči nejaký web. Máte veľmi jasnú predstavu ako ho vylepšiť, ale nemáte nad ním žiadnu kontrolu. Buď napíšete adminovi (veľa šťastia pri stránkach ako Google;) alebo si napíšete Userscript. (alebo napíšete do Googla a on vám nájde Userscript)
UserScripts sú minimalistické rozšírenia pre Chrome, Firefox a Operu, ktoré slúžia na vylepšenie vzhľadu a správania stránok. Občas aj na vylepšenie správania celého prehliadača. Fungujú veľmi jednoducho - na stránkach definovaných skriptom sa spustí kúsok javascriptu, ktorý stránku "opraví". Narozdiel od extensions, Userscripty majú takmer nulový dopad na svižnosť prehliadača a spotrebovanú pamäť.
Čo je veľmi dôležité. Napríklad taký AdBlock (v základnom nastavení) pre Chrome pridá k načítaniu stránky aj viac ako sekundu. Na čo sa dajú UserScripty použiť, uvidíte na pár príkladoch, ktoré často používam.
Mňa osobne maximálne nezaujímajú kydy z 4square-u, akákoľvek zmienka Klout-u a podobné kraviny, preto som spravil skript, ktorý skrýva tweety obsahujúce "4sq" alebo "klout". Protip: 4square zaujíma len tých, čo sú na 4square-i, ostatných nie! Keď vypnete automatické postovanie na Twitter, veľa ľudí dozaista potešíte. A sorry, Marcel, že som zrovna teba použil ako príklad, na niekoho to už len muselo padnúť :)
Download - Bullshit remover for Twitter.user.js (filterPattern
si môžete upraviť podľa ľubovôle).
V Googli mi oveľa viac vyhovoval starý štýl, kde bol pri každom výsledku odkaz na cacheovanú verziu a nezavadzala šípka so screenshotom, ktorá sa vždy rozbalí keď nechcem. Na to tiež existuje Userscript.
Download - Remove Google previews.user.js
Samotný Chrome nie vždy správne reaguje na otvorenie linku stredným tlačítkom myši. Podľa správnosti by mal otvoriť odkaz v novom tabe, no občas ho otvorí v rovnakom okne (pre názorný príklad kliknite stredným tu na názov produktu).
Download - Fix Chrome Middle Click.user.js
I sure AM sure! Feature Chrómu, ktorá mi po prechode z Opery liezla na nervy je, že stránky sa môžu pred zavretím tabu vypytovať, či ich naozaj chcem zavrieť. A keďže naozaj chcem, zbúchal som disableodbeforeunload.user.js. Predpokladám, že na to existuje nejaký extension, ale určite zaberá viac ako 206 bajtov.
Download - Disable Chrome onBeforeUnload.user.js
Zase raz niečo súvisiace s Googlom - Google Maps Fullscreen. Biely pásik na vrchu mapy sa síce dá prežiť, no keď zbadáte ako cool vyzerá Google mapa na celú obrazovku, budete cítiť silu!
Musíte najskôr sľúbiť, že sa mi nebudete moc smiať. Iba trochu.
Nuž.. V zúfalých momentoch občas zavítam na Pokec a samozrejme sa mi nepáčilo zobrazenie používateľov, tak som si spravil vlastné. Navyše väčšinu používateľov tvoria stále tí istí a väčšinu z nich nechcem vidieť. Teraz si ich môžem permanentne skryť X-kom v rohu, ba čo viac, skript najväčších blbcov automaticky povyhadzuje aj sám :) Toto všetko je ale takmer prd platné a aj tak odtiaľ vždy odídem sklamaný. :p Škoda, že neexistuje žiadna inteligentná stránka, kde by boli úplne random neznámi Slováci, s ktorými by sa dalo len tak kecať. (alebo len o nej neviem?)
Download - eh.. napíšte mi mail, ak to naozaj chcete :)
Chrome - Na stiahnuté userscripty stačí kliknúť a Chrome sa spýta, či ich chcete nainštalovať. Vlastnoručne nakódené userscripty sa inštalujú drag & dropnutím do okna Chrome.
EDIT (11.8.2012) - Chrome po novom nechce inštalovať UserScripty a treba ich povoliť command line parametrom "--enable-easy-off-store-extension-install". "Bezpečnosť" opäť útočí :/
Firefox - Je potrebné nainštalovať extension Greasemonkey (to je vlastne pôvodca Userscriptov), reštartovať a zvyšok je podobný ako v Chrome.
Opera - Tu je to o niečo zložitejšie. Treba ísť do Menu > Settings > Preferences > Advanced > Content > JavaScript options
a nastaviť User JavaScript folder
na adresár, z ktorého sa majú ťahať UserScripty. Druhá vec, čo je vhodné spraviť, je povoliť spúšťanie skriptov na HTTPS stránkach (Google aj Twitter napríklad používajú HTTPS). To spravíte v mega pokročilých nastaveniach opera:config#UserPrefs|UserJavaScriptonHTTPS. Má to jeden háčik, prehliadač sa po každom spustení raz spýta, či naozaj chcete spúšťať UserScripty na HTTPS.
Najväčším zdrojom hotových userscriptov je http://userscripts.org/. Ak budete nejaké googliť, skúste aj "greasemonkey scripts", to je vlastne ekvivalent.
Neprogramátori môžu v tomto momente pokojne prestať čítať :)
Celkom jednoducho. Vytvoríte nový súbor s kódovaním UTF-8 a koncovkou .user.js
- napríklad Vajcia.user.js
. Na začiatok tohoto súboru ide špeciálna hlavička:
// ==UserScript== // @name Môj geniálny vylepšovač stránky // @include http://drist.com/* // @include https://drist.com/* // @exclude http://drist.com/tuto/sa/nepustaj/* // @exclude https://drist.com/tuto/sa/nepustaj/* // @run-at document-end // ==/UserScript==
Po hlavičke už môžete veselo písať akýkoľvek Javascript s pár rozšíreniami navyše.
Ak by ste chceli bindovať funkcie obsiahnuté v Userscripte na tlačítka na stránke, za normálnych okolností to nejde (kvôli bezpečnosti). Čo je trocha nepraktické. Dá sa to samozrejme odrbať tzv. code injectionom - vložením kódu Userscriptu na koniec stránky.
function exec(fn) { // greasemonkey script injection var script = document.createElement('script'); script.setAttribute("type", "text/javascript"); fn = fn.toString(); script.textContent = fn.substring(fn.indexOf("{") + 1, fn.lastIndexOf("}")); document.body.appendChild(script); // na niektorych strankach je potrebne chvilu pockat (napriklad na Twitteri), lebo loaduju skripty oneskorene //setTimeout(function() { document.body.appendChild(script); }, 1000); } exec(function() { // moj kod, ktory uz moze veselo volat funkcie userscriptu });
Pozor, injectnutý kód stráca privilégiá Greasemonkey kódu. Ale to vám bude asi jedno. Komplet dokumentáciu nájdete na http://wiki.greasespot.net.
Archivovaný archív je bez komentárov. Radšej.
6 komentárov
komentuj ku každému komentáru sa v databáze ukladá iba meno, text a dátum, iba za účelom zobrazenia pod článkomneukladá sa email, IP adresa ani informácie o prehliadači a údaje sa nepoužívajú na reklamu, newsletter, na žiadnu ekonomickú aktivitu, nikam sa neposielajú, sú v databáze len aby sa mohli zobraziť pod článkom