[ bzero @ 04.08.2006. 11:49 ] @
Redovno posećujem b92.net, ali odnedavno se pojavila jedna stvar koja me strašno nervira. To je neka glupava flaša koka kole, koja izleće pravo niotkud, zatim mi kruži neko vreme ispred nosa i onemogućava čitanje vesti i korišćenje sajta uopšte. Inače imam pozitivno mišljenje i o b92 i o koka koli, i nemam pojma kako im je pala na pamet ovako glupava reklama, jer to, čini mi se, ne doprinosi baš ugledu ni jednih ni drugih (annoyances, annoyances...), ali to je već druga tema. Meni je bilo najvažnije kako se reštiti te napasti.

Ovo je rešenje koje je namenjeno Operi, a pored toga što uklanja glupavu reklamu, pokazuje kako se vrlo lako i elegantno, uz pomoć javascripta i korišćenjem nekih mogućnosti Opere, može "kastomizovati" svaki sajt. U firefoxu se za ovakve stvari mislim koristi GreaseMonkey (nisam siguran, jer ne koristim FF već neko vreme), a za razliku od Firefoxa gde je potrebno instalirati extenziju, ova mogućnost je već ugradjena u Operu.

U Operi postoji nešto što se naziva "Site preferences" i generalno omogućava potpunu kontrolu šta će i kako biti prikazano na konkretnom sajtu. Npr, otvori se neki sajt u browseru, iz menija se izabere "Tools > Quick Preferences > Edit site preferences..." i za taj sajt može da se podesi apsolutno sve, pop-up bloker, kukiji, da li da se prikazuju slike, java, frejmovi, itd, itd... Napomena je da ono što se podesi ovde važi samo za taj sajt i nema veze sa generalnim podešavanjima i ne utiče na to kako se prikazuju ostali sajtovi. U prozoru "Site preferences" postoji i tab "Scripting" u kome se podešavaju razne opcije vezane za javascript, zadnja je upravo ono što mi je trebalo, a to je "User JavaScript files", koja omogućava da se doda neki sopstveni javascript, koji će se izvršavati pored skripta koji već postoji na sajtu.

Za slučaj "kokakolizovanog b92" postupak je sledeći:

1. Napravi se direktorijum negde na računaru i nazove se, npr. "b92". Najbolje je napraviti novi, prazan direktorijum i u njega će se stavljati skripte.

2. Kratkim pregledom sorsa b92.net, lako se nadje da je za mrdanje flaše odgovoran script "floating_bottle.js", u kome se nalazi par funkcija, a kritična funkcija je "prStart(cookieName)" koja aktivira celu stvar. Praktično rešenje je da se onemogući ova funkcija, tj, zameni sopstvenom. To se može uraditi tako da napravi se jedan .js fajl i u njega stavi sledeći kod:

Code:

window.opera.defineMagicFunction('prStart', function () { return 0; });


ovaj fajl se snimi u direktorijum koji je napravljen gore, npr. kao "block_bottle.js". defineMagicFunction je posebna funkcija da "overriduje" globalne funkcije definisane regularnim skriptama koje već postoje na sajtu i ima dva parametra, prvi je naziv funkckije koju treba zameniti, a drugi implementacija funkcije (u ovom slučaju ne radi ništa, samo vraća nulu). Na sličan način moguće je uticati i na promenjive funkcijom defineMagicVarijable, a postoje i druge korisne funkcije.

3. Izabere se iz menija "Tools > Quick Preferences > Edit site preferences...", otvori se tab "Scripting" i kod "User JavaScript files" sa "Choose..." izabere direktorijum koji je napravljen i u koji je snimljen gornji skript. Od sada svaki put kada se otvori b92.net izvršavaće se i js iz ovog direktorijuma.

I to je to, za samo par minuta, nema više nikad dosadne leteće flaše...


Korisni linkovi:

Take Control with User JavaScript - uvod, funkcije i primeri:

http://www.opera.com/support/tutorials/userjs/
http://www.opera.com/support/tutorials/userjs/specs/
http://www.opera.com/support/tutorials/userjs/examples/
[ noviKorisnik @ 04.08.2006. 12:20 ] @
Zanimljivo, evo ovde kažu da imaju finu podršku za Greasemonkey user skripte (hajde de, koliko toliko, ali taman dovoljno da istestiram ovih nekoliko što sam pravio dosad)
[ biotech @ 04.08.2006. 12:49 ] @
samo kliknes "x" na flasi, nemoj da te to ometa u citanju vesti
[ noviKorisnik @ 04.08.2006. 13:21 ] @
hehe, lepo, evo radi QR iz Opere ... uz minimalne izmene.
[ madamov @ 04.08.2006. 13:30 ] @
To x stalno jurca po ekranu, pri tome je tako sitno da teško ubadam isti. Nego, kod Safarija jedan reload strane uklanja skript, tj. isti se ne izvršava, ne znam kako, ali rešava problem. Inače, stvarno ekstremna glupost, to još nisam video, samo će da me iznerviraju pa da kupujem samo Pepsi i Sinalco. B)
[ bzero @ 04.08.2006. 13:41 ] @
Citat:
...jedan reload strane uklanja skript, tj. isti se ne izvršava, ne znam kako, ali rešava problem...


Skripta je napravljena tako da izbacuje reklamu jednom dnevno, sto znaci kod prve posete, posle toga se ne pojavljuje (do sutra).


Citat:
noviKorisnik: hehe, lepo, evo radi QR iz Opere ... uz minimalne izmene.


To cu morati da probam, to je ona QuickReply scripta za FF?
[ noviKorisnik @ 04.08.2006. 13:45 ] @
Da, upravo sam okačio izmenjenu skriptu koja radi i u Operi ... http://xlt.viaphoenix.net/es/nkesqr.user.js
[ bzero @ 04.08.2006. 14:13 ] @
Ok, evo ga QuickReply iz Opere ;-)
[ Milan Gligorijevic @ 04.08.2006. 16:33 ] @
nK, ovo je odlicno, jos samo kada bi uradio i dugme "Pogledaj kako odgovor izgleda" pa da uopste ne moram ici na stranu za odgovor.
Da li moze i da li ce biti?
[ noviKorisnik @ 04.08.2006. 18:00 ] @
Možeš da izmeniš svoj skript što si snimio. Dodaš ...
Code:
        i = document.createElement ('input');
        i.setAttribute ('type', 'submit');
        i.setAttribute ('name', 'Submit');
        i.setAttribute ('value', 'Pogledaj kako odgovor izgleda');
        d.appendChild (i);

... neposredno pre linije ...
Code:
        f.appendChild (d);
[ Milan Gligorijevic @ 04.08.2006. 19:01 ] @
Izmenio i radi.
Hvala!
[ Milan Gligorijevic @ 14.08.2006. 08:38 ] @
Nesto sam primetio.
Kada se obavestenje o premestanju teme nalazi na kraju ovo polje za odgovor se "ubacuje" iznad tog obavestenja, a pre poslednjeg posta.
Da li je to namerno uradjeno ili slucajno i da li se moze promeniti.
[ noviKorisnik @ 14.08.2006. 09:20 ] @
Ide ispod poslednjeg pronađenog linka "Odgovor na temu". Poruka o prebacivanju nema ovaj link pa zato se formular i ne pojavljuje ispod nje. Zanimljivo je takođe da se formular uopšte ne pojavljuje na zaključanim temama (kao da zna da ne treba :-)...

Inače, skript je updateovan, tako da se pre svakog linka "Odgovor na temu" nalazi link "Brzi odgovor", a klik na taj link smešta formular oma ispod.
[ Milan Gligorijevic @ 21.09.2006. 20:57 ] @
Ako u naslovu teme postoje navodnici oni se gube prilikom brzog odgovora.
Da li sam propustio neki update skripte?
[ noviKorisnik @ 21.09.2006. 22:09 ] @
Ne. Naslov se vuče iz title taga, a tamo su stripovani navodnici. Možda to promenim jednom prilikom, jer čini mi se da bi zbog nekih izmena na ES skripta mogla da se pojednostavi.