A UserJS-ek, avagy userscriptek olyan JavaScriptben íródott fájlok, amely a böngészőn belül futnak le. Képes mindenre, amire a JavaScript és még további funkciókra is, mint események detektálása (eventLister), változók és függvények készítése és az oldal sütijeinek olvasása, továbbá képes felülírni a weboldalakon lévő eredeti scripteket.
Konyhanyelven fogalmazva tehát egy weboldalon belül (kliensoldalon) szinte bármit módosíthatunk anélkül, hogy az eredeti weboldal tartalmát módosítanánk.
Amikre gyakran használják:
- Javítanak egy-egy hibás weboldalt, lásd még: browser.js
- Kiterjeszteni egy weboldal funkcionalitását, felhasználóbarátabbá tenni a kinézetét és egyéni tartalmakat hozzáadni.
- Kontrollálni a többi scriptet, melyek futhatnak le és a lefutó scriptek miket tehetnek meg és mit nem. Tehát például káros, vagy felesleges scripteket szűrhetünk vele.
- Bookmarkletek, amelyek könyvjelzőként vagy sajátgombként elmentett JavaScript kódok, amik
javascript:
-tel kezdődnek a hagyományoshttp://
helyett.
Az Operás userJS-ek alapértelmezésben nem működnek HTTPS oldalakon. Ehhez az opera:config-ban be kell kapcsolni a következőt: opera:config#UserPrefs|UserJavaScriptonHTTPS
Ilyenkor, a 9.5 óta tartó végzetes hullámnak köszönhetően minden újraindítás után az első HTTPS oldalra érkezve feldob egy dialógust, ahol Igennel és Nemmel el lehet dönteni, hogy biztosan akarjuk-e futtatni a userJS-eket. Szerintem egyszerűbb lett volna egy állapotsávon elhelyezett checkbox, de hát ez van. Rafal talán készít 10.6x/10.7x verziókkal kompatibilis patch-et.
A scriptek normál esetben tehát minden weboldalon lefutnak. Ezt megelőzendő Operában 3 különböző lehetőségünk van.
1: Jobbklikk->Webhely tulajdonságainak szerkesztése->JavaScript és innen kitöröljük a UserJS könyvtárat. Ehhez tartozik még egy igényesebb, viszont körülményesebb megoldás, mégpedig a profilunkban lévő override.ini fájlba az oldalhoz tartozó oldalspecifikus információk alá beszerkesztjük a következő sort:
User Prefs|User JavaScript=0
2: Megnyitjuk a userJS fájlt egy szövegszerkesztőben, mondjuk Wordpad vagy Jegyzettömb és a tetején lévő részt (header) szerkesszük:
// ==UserScript== // @name A UserJS neve // @author A UserJS szerzője // @version 1.3.10 // @description A UserJS funkciójának leírása pár szóban. // @exclude http://example.com/* // @ujs:documentation http://a_dokumentacio.utvonala.com // @ujs:download http://example.com/userjs/userjs_neve.js <- A letöltési könyvtár // ==/UserScript==
Számunkra az @include és az @exclude részek a fontosak.
Az @include
azt jelenti, hogy az ott felsorolt oldalakon lefut a script. Alapértelmezésben minden oldalon lefut.
Az @exclude
pedig azt jelenti, hogy az ott felsorolt oldalakon nem fut le a UserJS.
Ha tehát azt szeretnénk, hogy az example.com oldalon ne fusson le, akkor a következőt tesszük:
// @exclude http://*example.com/*
Ha azt szeretnénk, hogy csak az example.com oldalon fusson le, akkor pedig ezt:
// @include http://*example.com/* // @exclude *
Ha csak egy bizonyos aloldalán nem szeretnénk, hogy lefusson, akkor az aloldalakat adjuk meg, például:
// @exclude http://example.com/content/post_edit/*
A csillag (*) helyettesítő karakter, tehát a helyén bármi lehet 0-tól korlátlan hosszúságig és bármilyen karakter, beleértve betűt és számot. A http:// után azért érdemes tenni egyet, mert sok oldal működik www.example.com és example.com formában is, valamint (például akár itt a blog.hu-n is) blogneve.blog.hu a blogok címe, tehát ha egyúttal a blog.hu-ra is akarjuk alkalmazni, nem csak egyes blogokra, akkor a *blog.hu jobb, mint a *.blog.hu, mivel a sima blog.hu mögött nincs pont.
A sorrend mindegy, a lényeg, hogy a // ==UserScript== és a // ==/UserScript== között legyen és a két perjel és a szóköz ott legyen a @include vagy @exclude előtt. Az utána következő webcímeket egy sima szóközzel és tabulátorokkal is elkülöníthetjük, hogy design-os legyen a userJS-ünk szerkezete.
3: Globálisan tiltjuk le az összeset a UserJS Manager nevű Unite alkalmazással egy kattintással, vagy simán megfogjuk fájlkezelőben a userjs könyvtárat és áthelyezzük egy másik mappába arra az időre, amíg nem szeretnénk userJS-eket futtatni sehol.
3+1: Módosított F12-es gyorsmenüből: http://magyaropera.blog.hu/2009/11/21/turbozd_fel_a_menudet
Hogy pár gyakorlati példát is hozzak: Hasznos felhasználói JavaScriptek Operához
Jelenleg eléggé szétszórva találhatók Operás UserJS-ek, az ExtendOpera.org talán az egyik legnagyobb és jelenleg is aktív userJS adatbázis Operához. Van még a userjs.org, amely már sajnos évek óta nem aktív, de azért még néhány működő userJS található rajta. A userscripts.org Greasemonkey script gyűjtemény, ezekből sajnos elég sok nem működik Operával, de azért ott is található néhány működő.
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.