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:
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/