Magyar Opera

UserJS részletek

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ányos http:// 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:

http://magyaropera.blog.hu/api/trackback/id/tr762245096

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.

Nincsenek hozzászólások.

Tetszett a bejegyzés? Kövesd a blogot!

blog.hu