Prijava na forum:
Ime:
Lozinka:
Prijavi me trajno:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:

ConQUIZtador
nazadnapred
Korisnici koji su trenutno na forumu 0 članova i 1 gost pregledaju ovu temu.
Idi dole
Stranice:
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
Tema: Korišćenje Greasemonkey ekstenzije za Firefox  (Pročitano 2495 puta)
27. Nov 2009, 16:15:31
Moderator
Legenda foruma


Zodijak Taurus
Pol Muškarac
Poruke 31625
Zastava Beograd
OS
Windows XP
Browser
Opera 9.63
mob
Nokia 6120
Mehaničar ispod haube


Uobičajeno surfovanje Webom sa odgovarajućim alatkama običnog posmatrača može pretvoriti u hakera koji tuđe stranice prilagođava sopstvenim potrebama

Greasemonkey (u engleskom žargonu: mehaničar, auto-mehaničar; u daljem tekstu GM) je ekstenzija (add-on) za Mozilla web browsere (Firefox i Seamonkey) koja omogućava prilagođavanje prikaza, upravljanje događajima, te dodavanje i uređivanje mogućnosti web stranica upotrebom JavaScript kôda u klijentskom okruženju (prilikom prikaza stranice u browseru ili u okviru proxy servera). Prevedeno na jezik uobičajenih korisnika računara, ovaj dodatak pruža mogućnost da korisnik web stranicu koju vidi u svom web browseru izmeni na licu mesta. Kada je jezik nešto naprednijih korisnika u pitanju, onda ćemo reći da GM omogućava virtuelno ugrađivanje i realno izvršavanje bilo kog JavaScript kôda na samoj web strani.

Bilo da je reč o umetanju ili uklanjanju elemenata strane, obavljanju računskih operacija, intervenciji na CSS atributima ili automatizaciji nekih akcija, GM će uspešno obaviti svaki postavljeni zadatak. Njegove mogućnosti ograničene su samo mogućnostima JavaScripta i znanjem korisnika da pronađe ili napiše odgovarajuću skriptu.



Instalacija i organizacija

Greasemonkey se u Firefox i Seamonkey može dodati ili preko dijaloga za instalaciju ekstenzija pretraživanjem ključne reči „greasemonkey” ili ručno sa stranice https://addons.mozilla.org/en-US/firefox/addon/748. Nakon instalacije i restartovanja programa, u statusnoj traci pojaviće se ikonica sa likom glave majmunčeta koje se osmehuje. Dijalog za upravljanje korisničkim skriptama poziva se bilo preko stavke „Manage user scripts” iz kontekstnog menija ekstenzije u statusnoj traci (majmunče), bilo preko dugmeta „Options” ekstenzije na dijalogu za ekstenzije.

Datoteke koje sadrže delove ili kompletne programe JavaScript kôda namenjenog instalaciji u GM nazivaju se „korisničke skripte” (eng. user scripts) i završavaju se duplim nastavkom .user.js. Na Webu postoji veliki broj gotovih skripti i uglavnom se mogu pronaći na zvaničnom GM direktorijumu userscripts.org. Pri instalaciji se smeštaju u direktorijum gm_scripts unutar direktorijuma sa korisničkim postavkama browsera. Po instalaciji su podrazumevano aktivne, no ukoliko korisnik u određenom trenutku ne želi da neka skripta „radi”, umesto uklanjanja (deinstalacije) dovoljno je isključiti je levim klikom na stavku skripte u kontekstnom meniju „majmunčeta” kada je u prozoru prikazan sajt za koji je skripta namenjena, ili pak odštiklirati opciju „Enabled” na dijalogu za upravljanje skriptama „Manage User Scripts” kada je izabrana željena skripta.

Uklanjanje skripti zbog toga što više nisu potrebne, što nisu zadovoljile korisnikova očekivanja ili iz bilo kog drugog razloga obavlja se izborom skripte na dijalogu „Manage User Scripts” i klikom na dugme „Uninstall”. Podrazumevano, sva podešavanja koja je skripta zabeležila u bazi chrome browsera (about:config) ostaće netaknuta ukoliko se ne omogući opcija „Also uninstall associated preferences”.

         

Greasemonkey API


Kako bi se korisničkim skriptama dodala mogućnost pamćenja nekih podešavanja i olakšala manipulacija resursima, razvijen je skup API funkcija.


Funkcija GM_log koja prosleđuje vrednost konzoli za greške (Error Console) može biti korisna pri razvoju skripti. Primer štampanja vrednosti promenljive „skf” dobija se prosleđivanjem naziva promenljive kao jedinog parametra funkcije:

GM_log(„skf”);

Set od četiri funkcije za upravljanje vrednostima GM promenljivih sadrži: GM_setValue i GM_getValue za postavljanje, odnosno čitanje određene vrednosti iz baze chrome (npr. beleženje datuma i vremena poslednjeg izvršavanja skripte). Ovim funkcijama se prosleđuju dva string parametra: naziv GM promenljive i njena vrednost za postavljanje, odnosno podrazumevana vrednost ukoliko promenljiva ne postoji u bazi za čitanje. Ovako sačuvane vrednosti nisu kratkotrajne, već se prenose između sesija. GM_deleteValue, kao što se i može pretpostaviti, uklanja vrednost iz baze. Prosleđuje se samo jedan parametar – naziv promenljive, dok GM_listValues stavlja u niz nazive svih GM promenljivih koje pripadaju skripti iz koje se izvršavaju. Primer postavljanja, čitanja i brisanja vrednosti za URL SK foruma:

GM_setValue("skforum", "http://www.sk.rs/forum/");

var skf = GM_getValue("skforum","http://www.sk.rs/forum/");

GM_deleteValue("skforum");

Funkcija GM_addStyle pravi novu sekciju za ugrađeni CSS stil, dodaje CSS selektor prosleđen kao parametar funkcije i umeće sadržaj u zaglavlje strane. Primer postavljanja crvene boje svog teksta na stranici:

GM_addStyle("* { color: red !important; }");

Pored rada u pozadini, korisničkim skriptama može se obezbediti i interakcija sa korisnikom. Naime, moguće je napraviti deo menija unutar kontekstnog menija „majmunčeta” koji će sadržavati stavke za upravljanje skriptom. Za ovo se koristi funkcija GM_registerMenuCommand kojoj se prosleđuju najmanje dva, a najviše pet parametara. Prvi parametar je naziv stavke u meniju, drugi je naziv funkcije ili kompletna funkcija koja će biti izvršena prilikom izbora te stavke. Slede: znak koji će predstavljati prečicu sa tastature za stavku u meniju i modifikacioni tasteri za prečicu („shift”, „alt”, „meta”, „control” ili „accel”), kojih može da nema, odnosno da ih ima jedan ili više. (Nama do sada nije pošlo za rukom da nateramo prečice da rade.) Poslednji parametar je znak za izbor stavke u meniju kada je meni otvoren (accessKey). Primer stavke menija koja prikazuje poruku „Zdravo svete” (kucati sve u jednom redu):

GM_registerMenuCommand("Zdravo svete!", function() {alert("Zdravo svete!");}, "z", "shift control", "z");

API funkcija u pozadini otvara URL prosleđen kao jedini parametar u novom tabu. Funkcioniše slično JavaScript funkciji window.open(), ali je praktičnija jer nije potrebno prosleđivati dodatne parametre za otvaranje u tabu i u pozadini. Primer otvaranja SK foruma:

GM_openInTab("http://www.sk.rs/forum/");

Napredniji autori kojima je potrebno baratanje rezultatima XML i HTTP upita mogu koristiti API poziv GM_xmlhttpRequest. On omogućava baratanje čak i lokacijama koje se ne nalaze u domenu za koji skripta važi, tj. na kom se izvršava. Parametri koji se prosleđuju ovoj funkciji su: vrsta HTTP upita (POST ili GET), URL adresa na koju se upit šalje, HTTP zaglavlja koja će se proslediti toj adresi (identifikacija browsera, vrsta sadržaja koja se prihvata – MIME tip, parametri za prijavljivanje na sajt ako je potrebno itd.), zaobilaženje MIME tipa, te prosleđivanje kodiranih podataka formulara. Pošto sa rezultatom upita nešto valja i uraditi, postoje tri hendlera za različite događaje, i to: onload (izvršava neki kôd kada je dobijen rezultat upita), onreadystatechange (izvršava neki kôd kada se promeni status rada upita) i onerror (izvršava neki kôd kada dođe do greške pri upitu).

Primer čitanja stranice www.sk.rs i prikaz HTML kôda u dijalogu:

GM_xmlhttpRequest({

method: "GET",

url: "http://www.sk.rs/",

headers: {

"User-Agent": "Mozilla/5.0",

"Accept": "text/html"

},

onload: function(response) {

alert(response.responseText);

}

});

Moj prvi user script


Da biste što lakše razumeli kako GM radi ispod haube, objasnićemo jednostavnu skriptu pomoću koje je moguće prilagoditi izgled foruma „Sveta kompjutera” željama korisnika. Ovde pre svega mislimo na izbor boja za prikaz elemenata. Napravićemo dva seta boja, GM meni za ručni izbor jedne od tih boja i CSS kôd koji će biti apliciran.

Nove korisničke skripte kreiraju se izborom stavke „New User Script” iz kontekstnog menija GM u statusnoj traci. Na istoimenom dijalogu treba definisati naziv skripte (Name), jedinstvenu adresu koja će identifikovati skriptu (Namespace), a koja može biti http://localhost/ za anonimne lokalne skripte, korisnički profil autora na userscripts.org direktorijumu ili neki drugi jedinstveni niz znakova, te u polje Description valja upisati kratak opis onoga što skripta radi. Polje Includes (One per line) služi za upisivanje URL adresa na kojima će se skripta izvršavati. Moguće je definisati više adresa (sajtova), pri čemu jedna linija može sadržati samo jednu adresu. Pored apsolutne putanje, može se koristiti i džoker znak ’*’ (zvezdica) koji zamenjuje ostatak adrese (npr: http://www.sk.rs/ forum/* označava sve stranice koje počinju sa http://www.sk.rs/forum/). Nasuprot tome, u polje Excludes (One per line) upisuju se adrese koje se izuzimaju, tj. na kojima se skripta neće izvršavati (npr. ako navedemo http://www.sk.rs/forum/archive/*, onda naša skripta neće imati efekta na stranice iz arhive SK foruma).

Nakon pritiska na dugme OK, ako se GM koristi po prvi put, neophodno je izabrati editor teksta koji će se koristiti za pisanje i uređivanje skripti. Kako su korisničke skripte zapravo tekstualne datoteke, može se izabrati i Notepad ili bilo koji drugi napredniji uređivač teksta.

// ==UserScript==

// @nameSK Forum tema

// @namespacehttp://userscripts.org/users/96101

// @descriptionMenja podrazumevanu temu SK foruma

// @includehttp://www.sk.rs/forum/*

// @excludehttp://www.sk.rs/forum/modcp/*

// @excludehttp://www.sk.rs/forum/archive/*

// ==/UserScript==#

Zaglavlje skripte sadrži gore navedene parametre. Naša se skripta zove „SK Forum tema” i funkcionisaće na SK forumu, ali ne u arhivi i moderatorskom panelu.

function skft() {

var tema = GM_getValue(„tema”, „servis”);

switch (tema) {

case „gray”:

var b1 = „#444”; var b2 = „#555”;

var b3 = „#DDD”; var b4 = „#EEE”;

var t1 = „#222”; var t2 = „#000”;

var t3 = „#FF7400”; break;

default:

var b1 = „#004000”; var b2 = „#008000”;

var b3 = „#D0F3B6”; var b4 = „#F9F7ED”;

var t1 = „#008000”; var t2 = „#004000”;

var t3 = „#800040”;

}

// definise selektore sa predefinisanom temom boja

var css = "body, .page { color: "+t1+"; }" +

"a:link, a:visited { color: "+t2+"; }" +

"a:hover, a:active { color: "+t3+"; }" +

".tborder { background: white; color: "+b1+";

border: 1px solid "+b1+"; }" +

".thead { background: "+b1+"; color: "+b4+"; }" +

".tcat, .vbmenu_control, .tfoot { background:

"+b2+"; color: "+b4+"; }" +

".alt1, .alt1Active, .panelsurround, .wysiwyg {

background: "+b4+" !important; color: "+t1+"

!important; border: none !important; }" +

".alt2, .controlbar, .imagebutton, .panel {

background: "+b3+"; color: "+t1+";

border: none !important; }" +

"input, textarea {color: „+t2+"}" +

"div.page {width: 100% !important; padding: 0;

margin: 0;}";

GM_addStyle(css);

}

Funkcija skft() prvo uzima iz baze chrome izabranu temu. Ukoliko korisnik nije ranije izabrao temu, postavlja se podrazumevana tema – servis. Nakon toga, radi se izbor HEX boja pojedinačnih elemenata JavaScript funkcijom switch(), u zavisnosti od izabrane teme. Pošto su boje dodeljene promenljivima, formira se CSS niz selektora sa umetanjem predefinisanih boja za elemente stranica foruma. Pored postavljanja novih boja, na kraju zadajemo da atribut stranice bude širine 100 odsto, odnosno da ispuni prozor browsera celom širinom. Poslednji korak funkcije skft() jeste primena formiranog CSS stila GM funkcijom GM_addStyle:

GM_registerMenuCommand( "Servis", function() {

GM_setValue( "tema", "servis"); skft(); }, "s", "alt meta", "s" );

GM_registerMenuCommand( "Siva", function() {

GM_setValue( "tema", "gray"); skft(); }, "g",

"alt meta", "g" );

skft();

Kako bismo omogućili izbor između ovde prikazane dve teme, dodajemo u GM meni stavke Servis i Siva. Na kraju skripte pozivamo funkciju skft() kako bi ranije izabrana ili podrazumevana tema bila primenjena kada se u browseru završi učitavanje stranice SK foruma.

Prikazali smo skraćenu verziju skripte koja sadrži samo dve teme. Punu verziju sa više tema članovi foruma „Sveta kompjutera” mogu preuzeti sa adrese http://userscripts.org/scripts/show/52170.

Resursi


Već smo pomenuli to da osim samostalnog pisanja korisničkih skripti, što će biti interesantno naprednijim čitaocima koji vole da uče i eksperimentišu, postoji i veliki broj gotovih skripti za popularne sajtove. Na adresi http://userscripts.org/ mogu se naći skripte za unapređivanje Googlea, Yahooa, Gmaila, Flickra, Facebooka, YouTubea, Twittera; čak su obrađene i online igre poput Traviana, validacija linkova za Rapidshare i druge filesharing sajtove i još mnogo toga. Svakako korisne adrese za sve web entuzijaste su Greasemonkey blog http://greasespot.net, Wiki sa osnovnim informacijama i primerima za autore http://wiki.greasespot.net, diskusiona Google grupa za dodatnu pomoć i razmenu iskustava http://groups.google.com/group/greasemonkey-users i, naravno, Google.

Ako smo vam ovim tekstom zagolicali maštu i probudili želju da se oprobate u hakerskim vodama, podelite svoja dostignuća sa ostalim čitaocima na našem forumu.


Izvor: SK
IP sačuvana
social share
Pogledaj profil WWW
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Udaljen sa foruma
Krajnje beznadezan


Zodijak Aquarius
Pol Muškarac
Poruke 14494
Zastava
OS
Windows XP
Browser
Mozilla Firefox 3.5.5
Грисманки кида, свима препоручујем.
IP sačuvana
social share
Комплекс - Искуство за које је везана снажна емоција, спој овог когнитивног садржаја и емоције снажно утиче на понашање, нарочито када је из свесног потиснут у несвесни део психе.

Љубазно вас молим да, ако нисте схватили, без преке потребе не употребљавате термин.
Pogledaj profil GTalk Skype Twitter Facebook
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Svedok stvaranja istorije


Zodijak Pisces
Pol Muškarac
Poruke 22256
Zastava Winterfell
OS
Windows XP
Browser
Mozilla Firefox 3.5.5
mob
SonyEricsson HGPORI
Грисманки кида, свима препоручујем.

Upravo to  Smile
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Zvezda u usponu


I choose not to choose

Zodijak
Pol Muškarac
Poruke 1017
OS
Windows XP
Browser
Mozilla Firefox 3.5.5
mob
Nokia 
Koje korisne skripte preporučujete
Trenutno koristim

Fajlovi prikačeni uz poruku (kliknite na slike za punu veličinu)

ScreenHunter_02 Nov. 29 13.49.gif
(7.82 KB, 205x482)
IP sačuvana
social share
Pogledaj profil
 
Prijava na forum:
Ime:
Lozinka:
Zelim biti prijavljen:
Trajanje:
Registruj nalog:
Ime:
Lozinka:
Ponovi Lozinku:
E-mail:
Idi gore
Stranice:
Počni novu temu Nova anketa Odgovor Štampaj Dodaj temu u favorite Pogledajte svoje poruke u temi
nazadnapred
Prebaci se na:  

Poslednji odgovor u temi napisan je pre više od 6 meseci.  

Temu ne bi trebalo "iskopavati" osim u slučaju da imate nešto važno da dodate. Ako ipak želite napisati komentar, kliknite na dugme "Odgovori" u meniju iznad ove poruke. Postoje teme kod kojih su odgovori dobrodošli bez obzira na to koliko je vremena od prošlog prošlo. Npr. teme o određenom piscu, knjizi, muzičaru, glumcu i sl. Nemojte da vas ovaj spisak ograničava, ali nemojte ni pisati na teme koje su završena priča.

web design

Forum Info: Banneri Foruma :: Burek Toolbar :: Burek Prodavnica :: Burek Quiz :: Najcesca pitanja :: Tim Foruma :: Prijava zloupotrebe

Izvori vesti: Blic :: Wikipedia :: Mondo :: Press :: Naša mreža :: Sportska Centrala :: Glas Javnosti :: Kurir :: Mikro :: B92 Sport :: RTS :: Danas

Prijatelji foruma: Triviador :: Domaci :: Morazzia :: TotalCar :: FTW.rs :: MojaPijaca :: Pojacalo :: 011info :: Burgos :: Alfaprevod

Pravne Informacije: Pravilnik Foruma :: Politika privatnosti :: Uslovi koriscenja :: O nama :: Marketing :: Kontakt :: Sitemap

All content on this website is property of "Burek.com" and, as such, they may not be used on other websites without written permission.

Copyright © 2002- "Burek.com", all rights reserved. Performance: 0.11 sec za 16 q. Powered by: SMF. © 2005, Simple Machines LLC.