Ideen bak Greasemonkey er ganske enkel. Det er en Firefox-utvidelse, installert på samme måte som alle andre Firefox-utvidelser (finn den via Verktøy> Addons-menyen og klikk Installer).

Men det gjør ikke noe i seg selv: Det som gjør det, er å gjøre det mulig for deg å kjøre skript, enten av andre eller av deg selv, noe som vil endre måten nettsider ser ut og fungerer på.

Greasemonkey brukerskript er biter av kode som faktisk gjør jobben - Greasemonkey selv laster og administrerer disse. Brukerskript er skrevet i JavaScript, men vær advart: Av sikkerhetshensyn er dette ikke bare et spørsmål om å skrive vanlig JavaScript og vekk du.

Det er noen gotchas å være klar over, selv om skriptene i denne guiden ikke støter på noen av dem. Et raskt notat hvis du ikke er kjent med JavaScript: denne veiledningen kommer ikke til å forklare JavaScript-syntaks i noen detalj, men ikke la det stoppe deg fra å gi det en tur. Det er alt ganske logisk og kodestykket er forklart.

For å installere et skript som noen andre har skrevet, navigerer du til plasseringen i Firefox og klikker på koblingen til manuset. Du får en installasjonspopup, som med en vanlig utvidelse, og kan enten se på kildekoden til scriptet først, eller hvis du føler deg klar, bare installer den.

Del 1 - Ditt første Greasemonkey-skript

Greasemonkey gir en nyttig dialog for å lage et skript så enkelt som mulig. I Firefox-vinduet ditt, når du har lastet ned og installert Greasemonkey, vil det være et lite ape-ansikt i høyre hjørne av statuslinjen.

Høyreklikk på det, og du får en meny som inneholder alternativet "New User Script". Klikk det og du får en dialog som ser litt ut som boksen til høyre.

"Navnet" er bare navnet på skriptet ditt - det er best å velge noe som tydeligvis angir hva det gjør, for å lette scripthåndtering senere. "Navnerom" er å unngå at skriptet ditt knytter sammen med andre.

Hvis du prøver å installere et skript som har samme navn som en allerede installert, er det navneområdet som styrer om det vil overskrive den gamle (hvis navneområdet er det samme) eller eksistere sammen med det (hvis de er forskjellig).

Det er et par ting du kan gjøre her: Den første er å bruke ditt eget nettsted som domenenavnet. Alternativt kan du bruke http: // localhost, eller hvis du har tenkt å laste den opp til http://userscripts.org Når du er ferdig, kan du bruke det.

Nåværende versjoner av Greasemonkey lar deg ikke la det stå tomt. 'Beskrivelse' er for en menneskelig lesbar linje som beskriver hva skriptet gjør. Det er en veldig god idé å fylle dette feltet inn, selv for dine egne skript - du kan komme opp med stabler av tingene og de vil være mye enklere å administrere hvis du gir ekstra ledetråder om hvilket som er.

Hakk nettet

Reglene "inkludere" og "ekskludere" styrer hvilke nettsteder et skript vil kjøre, og kan inneholde jokertegn. Så, www.example. com / * vil matche www.example.com/ og alle sider som starter med den URL-adressen (mens www.example.com/ uten stjerne vil bare inkludere forsiden).

Du kan også bruke jokertegn for deler av navn: http: //*.example.com/f* vil matche hvilken som helst side hvis sti begynner med f, på hvilken som helst server i example.com-domenet. Som standard inneholder boksen inkludere siden du var på når du klikket på det nye skriptalternativet, men du kan slette det.

Hvis en inkluderingsregel matches, og ingen ekskluderingsregel samsvares, vil scriptet kjøre. Hvis du ikke har noen inkluderingsregel, antar Greasemonkey @include *, dvs. at alle nettadresser er matchet, så skriptet vil kjøre på hver side du laster inn.

Dette første skriptet skal sette bakgrunnen til en side til hvit - veldig nyttig, faktisk hvis du kommer over en side hvis forfatter har en kjærlighet for øyebollssjærende rosa eller et slags repeterende bakgrunnsbilde som genererer hodepine i løpet av sekunder.

Så velg et nettsted du vil endre bakgrunnen til og legg det inn i @include boks (her bruker jeg www.example.com), og angi de andre feltene som passer.

Når du har fylt inn dette, vil du bli bedt om din foretrukne redaktør (hvis det ikke allerede er et sett), og deretter vil Greasemonkey laste inn skriptfilen - som for øyeblikket bare inneholder metadata - opp i redigeringen din, klar for deg å skrive noe.

På dette tidspunktet vil koden du står overfor, se en god bit slik:

// == UserScript ==
// @navn Bakgrunnsendring
// @namespace http://www.example.com/ juliet /
// @description Endre bakgrunnsfargen på en side
// @include http://www.example.com/*
// == / UserScript ==

Nå er det på tide å faktisk skrive skriptet. Alt dette første skriptet gjør er å endre bakgrunnsfargen på alle sider fra nettsteder i inkludere domenet til hvitt. (Det er virkelig noen ubehagelige bakgrunnsfargevalg der ute.)

For en side uten rammer eller andre komplikasjoner, er dette veldig greit: bare en enkelt linje.

document.body.style.background = "#ffffff";

dokument er den innebygde måten å referere til gjeldende side. Det er et DOM-objekt (Object Object Model) som representerer hele HTML-dokumentet.

Tenk på dette som et tre med HTML-elementer sett på som objekter, med hvert nytt element som forgrener seg som et "barn" av den som er før det - se på diagrammet nedenfor, som viser en mulig struktur for kroppsdelen av en HTML dokument.

DOM TREE: Et HTML-dokument som et DOM-tre - hvert barn knutrer grener ned fra sin overordnede node

Notasjonen for å referere til et objekt i denne modellen er toplevel.child.childofchild. Så denne linjen tar dokumentet, deretter kroppselementet, deretter kroppens stil, deretter bakgrunnsattributtet til stilen ... og setter det til hvitt. (#ffffff er hvit i heksadesimal notasjon, som er en av HTML-standardene. Du kan også bare bruke hvit.)

Prøv det nå - velg en side med en ikke-hvit bakgrunn, bruk Administrer skript-menyen for å legge til det for innholdet for skriptet ditt, og last siden på nytt.

Når du tester, husk: du gjør ikke noe på nettsiden du redigerer. Du endrer bare det for deg. Så hvis du gjør noe katastrofalt, ikke noe problem! Du kan bare slå av skriptet ditt, eller redigere det og laste siden på nytt. Så vær så snill å eksperimentere.

Når du prøver, hvis du klikker på det lille apekanten, vil den bytte Greasemonkey på / av. Så du kan bytte den av, se hvordan siden ser ut, slå på den, last på nytt og se hva skriptet ditt gjør.