A most bemutatott userJS jelenleg még béta állapotban van és csak azért teszem közzé, mert a fejlesztője, Baldric, időhiányban nem tudja folytatni.
De előbb egy kis magyarázat, mire is jó ez az egész. Az RSS-t remélhetőleg mindenki ismeri. Egy nagyon jó idő, sávszélesség és idegrendszer kímélő megoldás, amivel egy központi kliensben, például az Opera beépített RSS olvasójában megkapjuk a híreket, amikre feliratkoztunk egy kattintással.
Sajnos napjainkban nem örvend túl nagy elterjedtségnek, aminek az ismertség hiánya lehet az oka, elvégre egy forradalmi megoldásról van szó.
Éppen emiatt elég kevés helyen alkalmazzák és ahol alkalmazzák ott is általában csak egyszerűen a hírekre, esetleg még a kommentekre (mint itt), de nem használják ki a specifikációban rejlő lehetőségeket.
Erre még rátett egy lapáttal az Internet Explorer, Firefox és Safari részleges implementációja, amivel a könyvjelzők szintjére degradálták le ezt az XML lehetőségeivel bíró szabványt. A Google nem is tartotta fontosnak az implementációt a böngészőjébe.
De mielőtt nagyon eltérnék a tárgytól, lényegében emiatt van szükség olyan megoldásokra, mint a címben szereplő két kiegészítő és mivel ezek egyike sem létezik Operára, ezért van szükség a cikk további részében bemutatott userJS-re, ami sok szempontból még fejlettebb is, mint a fenti két megoldás, habár felhasználóbarátnak nem igazán mondható, de mint említettem, még csak béta.
Működése:
- Element alapon működik. Kijelöljük azokat az elemeket, amiket figyelni akarunk (ahogy a NoAds-ban), majd kattintunk, az oldal újratöltődik és eltárolódik a domainspecifikusan a Local Storage-ban.
- Az lap frissítésekor összehasonlítja az eltárolt tartalmat az aktuális tartalommal, ha változás van, akkor bekeretezi box-shadow használatával azt a DIV-et, amely tartalma megváltozott és hangjelzést ad, valamint, hogy Visual Tabs-szal is kompatibilis legyen, megjelenik két nagy piros felkiáltójel az oldalon, egy absolute a bal felső sarokban és egy fixed pozíciós középen.
- Ha rávisszük a felkiáltójelekre az egeret (és azok eltűnnek) azzal eltároltuk a változást és az aktuális tartalomhoz fog innentől fogva a következő frissítés alkalmával viszonyítani. Amíg ez nem történik meg, minden egyes frissítési periódusban hangjelzést ad és kiteszi a két felkiáltójelet.
- Változáskor automatikusan a legfelső megváltozott elemhez görgeti az oldalt.
Használata:
- Helyezzük el a UserJS-t a userjs mappánkban.
- Csináljunk egy billentyűparancsot, mozdulatparancsot, sajátgombot vagy könyvjelzőt, amelyik nekünk a legszimpatikusabb a következő paranccsal:
Go to page, "javascript:forumAlert.on_off(); void 0"
- A fenti paranccsal fogjuk tudni majd aktiválni a kijelölő keretet, amivel utána egérrel kiválasztjuk az oldal figyelni kívánt elemeit.
- Miután kijelöltük a figyelni kívánt területet, két lehetőségünk van. Állítsunk be igény szerinti periodikus frissítést. Ez persze oldalfüggő. Ahol csak hetente van változás, azért felesleges nyitva tartani egy fület. Ha legközelebb meglátogatjuk és van változás, akkor jelezni fog nekünk a script.
- Kombinálhatjuk az Opera Unite Webserver nevű alkalmazásával. Ez pörgősebb oldalaknál hasznos, mert a periodikus újratöltés az oldalt teljes egészében újraellenőrzi, tehát nagyobb a CPU használat, adatforgalom és a szerverre rótt terhelés is. A Unite segítségével pedig egy általunk (némi HTML ismeret birtokában) meghatározott méretű iframe-ben elhelyezhetjük a figyelni kívánt oldalakat. Ez esetben a mellékelt HTML fájlban kell megadni a frissítési gyakoriságot milliszekundumban.
- Ha hibáztunk és rossz elemet jelöltünk ki, vagy már nincs rá szükségünk, akkor az
opera:webstorage
oldalon tudjuk törölni a domainhez tartozó rekordokat. Ugyanez törlés nélkül is működik, ha a fent említett parancsot újra kiadjuk és kijelölünk valami mást, ami felülírja a korábbit.
Unite:
- Indítsuk el az Opera Unite-ot és a Webserver nevű alkalmazást.
- Tallózzunk be a Webserverben egy tetszőleges könyvtárat, amiben a HTML fájl (nem a userJS!) található. Ha már van betallózott könyvtárunk, akkor értelemszerűen helyezzük el benne a HTML fájlt).
- Nyissuk meg valamilyen szövegszerkesztővel a UserJS-t.
- A második sort módosítsuk erről:
forumAlert.domain = '';
erre: forumAlert.domain = 'http://admin.home.NEVED.operaunite.com'; - Nyissuk meg a HTML fájlt és keressük meg a 67. sorban a
self.setInterval(refresh,300000);
-t - A 300000 ms-t (ami 5 perc) módosítsuk tetszőleges értékre. Sajnos itt csak globális frissítési értéket tudunk megadni, ami minden itt behívott oldalra érvényes lesz.
- Nyissuk meg Webserveren keresztül a frames.html-t, majd az EDIT linkre kattintva a piros keretbe adjuk meg egymás alá a figyelni kívánt címeket.
- Fontos (1): A figyelni kívánt címeknek ugyannnak kell lennie, amelyen a scripttel kijelöltük a figyelni kívánt elemeket. Vagyis ha a www.example.com-on tároltuk el a figyelendő elemeket és a sima example.com-ot adjuk meg, akkor nem fog jelezni. Éppen emiatt lehetőleg próbáljunk óvakodni a felesleges paraméterektől az URL mezőben.
- Fontos (2): Az URL utolsó karaktere nem lehet # (azaz kettőskereszt). Ha ilyen van, akkor töröljük a végéről. Ha a kettőskereszt után anchor van (például #comments), akkor természetesen maradhat.
- Miután megadtuk a kívánt oldal(aka)t, kattintsunk a SAVE linkre.
- Fontos (3): Olyan oldalakon, ahol regisztációhoz van kötve az általunk figyelni kívánt tartalom, sajnos csak abban az esetben működik, ha figyelni kívánt oldalon az "Minden sütit elfogad" opció van bejelölve.