Personalizējiet tīmekļa lapas ar GreaseMonkey

GreaseMonkey ir Mozilla Firefox tīmekļa pārlūkprogrammas paplašinājums, kas ļauj lietotājiem pārlūkot tīmekļa lapas, ko viņi apmeklē, kamēr viņi sērfo internetā. Šī unikālā programmatūra ļauj lietotājiem personalizēt tīmekļa lapas atbilstoši savām vēlmēm, uzlabojot vai dzēšot noteiktas lapas daļas. Dažas zināšanas par skriptu valodām un programmēšanas valodām ir nepieciešamas, lai rakstītu GreaseMonkey skriptus, jo tie satur elementus no Javascript, DOM, HTML, CSS un XPATH. Tiem, kas vēlas personalizēt tīmekļa lapas, izmantojot GreaseMonkey, visu pašpalīdzības rokasgrāmatu var bez maksas lejupielādēt no interneta kopā ar citiem noderīgiem resursiem.

Kas ir GreaseMonkey?

GreaseMonkey ir Firefox paplašinājums, kas ļauj iekarot lidojuma tīmekļa lapas, ko apmeklējat.

Tas ir, tas maina lapu tieši pārlūkprogrammā.

Tas ļauj jums mainīt visas vietnes lapas, kā vēlaties: noņemt nevēlamos objektus, rediģēt HTML, pievienojiet HTML kodu, mainīt / pievienot / noņemt JavaScript, mainīt krāsas, pievienot funkcijas, palielināt vai palielināt samazināt tabulu, veidlapu utt.

1. piemērs

Šis skripts pārveidos Kioskea lapas, lai palielinātu ziņojumu lauku forumos.

/ / Šis skripts ir publiski pieejams.

//

// == UserScript ==

// @name KIOSKEA-Forums

// @namepace WEBSITE

// @description Modificējiet ccm tīmekļa lapas

// @include //ccm.net/*

// @include //www.commentcamarche.com/*

// @include //www.commentcamarche.net/*

// == / UserScript ==

(funkcija () {

// Noņem visus elementus, kuru XPath tiek nodrošināts no dokumenta.

//

// Piemērs: noņemiet visas tabulas, kas izmanto CSS klasi "toto":

// removeElement ("// tabula [@ class = 'toto']");

funkcija RemoveElement (ElementXpath)

{

var alltags = document.evaluate (ElementXpath, dokuments, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

par (i = 0; i

{

element = alltags.snapshotItem (i);

element.parentNode.removeChild (elements); // Noņemiet šo elementu no sava vecāka.

}

}

// Noņem atribūtu no visiem elementiem, kuru XPath tiek nodrošināts.

// (tiek apstrādāti visi šo elementu notikumi.)

//

// Piemērs: noņemiet visu bgcolor

:

// removeAttributeOfElement ('bgcolor', "// tabula [@bgcolor]")

// Noņemiet fiksēto ar visām tabulām vai šūnām ::

// removeAttributeOfElement ("platums", "// tabula [@width] | // td [@width]")

funkcija removeAttributeOfElement (atribūtsName, ElementXpath)

{

var alltags = document.evaluate (ElementXpath, dokuments, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

par (i = 0; i

alltags.snapshotItem (i) .removeAttribute (atribūta nosaukums);

}

// Iestatiet atribūtu no visiem elementu notikumiem uz noteiktu vērtību.

// Šī atribūta iepriekšējā vērtība tiek atmesta.

// (tiek apstrādāti visi šo elementu notikumi.)

//

// Piemērs: iestatiet ar līdz 80 slejām visos tekstos:

// setAttributeOfElement (“cols”, 80, “// textarea”)

funkcija setAttributeOfElement (atribūtsName, attributeValue, ElementXpath)

{

var alltags = document.evaluate (ElementXpath, dokuments, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

par (i = 0; i

alltags.snapshotItem (i) .setAttribute (atribūtsName, attributeValue)

}

// Ievadiet savu CSS lapā.

// Piemērs: nenorāda saiti:

// injCSS ("teksta noformējums: nav;}")

funkcija injCSS (cssdata)

{

head = document.getElementsByTagName ("head") [0];

style = document.createElement ("stils");

style.setAttribute ("tips", "teksts / css");

style.innerHTML = cssdata;

head.appendChild (stils);

}

mēģiniet

{

// Ziņojuma setAttributeOfElement lauka palielināšana ("rindas", "40", "// textarea [@ name = 'message']");

setAttributeOfElement ('cols', '120', "// textarea [@ name = 'message']");

/ / Diskusiju sarakstā mēs iesakām drosmīgi diskusiju, kas nav saņēmusi nekādu atbildi. setAttributeOfElement ('stils', 'font-weight: bold;', "// td [teksts () = '0'] /../ td [1] / a");

}

nozvejas (e)

{

brīdinājums ("UserScript izņēmums: n" + e);

}

}) ();

Svarīgākā skripta daļa ir:

 setAttributeOfElement ("rindas", "40", "// textarea [@ name = 'message']"); setAttributeOfElement ('cols', '120', "// textarea [@ name = 'message']"); 

Šīs divas līnijas maina teksta lauka (teksta apgabala) lielumu (rindas, kolonnas), ko izmanto, lai rakstītu ziņas (identificētas pēc nosaukuma = "ziņojums").

Tā izmanto XPath (/ / textarea ...), lai izvēlētos elementu, kurā rīkoties.

XPath ir veids, kā noteikt konkrētus HTML lapas elementus, bet tā izmantošana nav obligāta.

Jūs varat doties cauri tradicionālajām DOM metodēm (.GetElementsByTagName () un pēc tam veiciet cilpu utt.).

2. piemērs

Šis skripts satur arī šo rindu:

 setAttributeOfElement ('stils', 'font-weight: bold;', "// td [teksts () = '0'] /../ td [1] / a"); } 

Foruma diskusiju jomā tas papildinās treknrakstus diskusijām, uz kurām nav atbildēts.

XPath:

- Atlasiet tabulas šūnas, kurās ir teksts "0" (td [text () = '0'])

- Doties atpakaļ uz līmeni

( / .. )

- Mēs turpinām pirmajā

un / .. pēc datumiem
šūna (kurā ir nosaukums) ( / td [1] )

- Mēs ieliekam treknrakstā visas šajā lapā iekļautās saites (/ a)

.

XPath

Daži piemēri:

- Izvēlieties visus attēlus: / / img

- Atlasiet visus attēlus bez robežām: / / img [@ border = '0']

- Atlasiet visas saites, kas norāda uz Google: / / a [@ href = '//google.com']

- Atlasiet Visas saites uz Google un tajā ir teksts "Saite uz Google: / / a [@ href = '//google.com' un tajā ir (., " Saite uz Google ")]

- Atlasiet visas saites: / / a

- Izvēlieties tikai tos attēlus, kas saiti: / / a / img

- Izvēlieties tikai saites, kas tieši ievietotas tabulas šūnā: / / td / a

- Atlasiet tikai pirmo saiti, kas ievietota tieši tabulas šūnā: / / td / a [1]

- Atlasiet tikai pēdējo saiti, kas ievietota tieši tabulas šūnā: / / td / a [pēdējā ()]

- Atlasiet visas tabulas šūnas, kurās ir precīzs teksts "Hello": / / td [text () = 'Hello']

- Atlasiet visas tabulas šūnas, kas satur (kaut kur tekstā) vārdu "Hello": / / td [satur (., 'Hello')]

- Atlasiet visas tabulas šūnas, sākot ar tekstu "Hello": / / td [sākas ar (., 'Sveiki')]

- Atlasiet visas tabulas ar šūnu, kurā ir vārds "foo": / / td [satur (., "Sveiki")] /../ .. (Pirmais / .. atpakaļ

)

- Atlasiet visas šūnas tabulu otrajā slejā: / / tr / td [2]

- Atlasiet visas šūnas tabulu pēdējā slejā: / / tr / td [last ()]

- Atlasiet šūnas 1. un 3. slejā: / / tr / td [pozīcija () <= 3]

- Atlasiet visas tabulas ar vismaz vienu atribūtu: / / table [@ *]

- Atlasiet visas tabulas ar atribūta platumu: / / tabula [@ width]

- Atlasiet visas tabulas ar 400px platumu: / / table [@ width = '400px']

- Atlasiet visus tagus, kas ir šūnas tiešās meitas: / / td / *

- Atlasiet visas saites, kas ir tieši šūnas dēls: / / td / a

- izvēlieties otro saiti, kas ir tieša šūnas dēls: / / td / a [1]

- Izvēlieties pirmo tagu šūnā, kāda tā ir: / / td / * [1]

- Atlasiet pirmo tagu ar atribūtu onload: / / td / * [@ onload]

- Atlasiet tagu, kas ir atzīme pēc p html kodā: / / p / pēc :: a

- Atlasiet tagus, kas tūlīt ir meiteņu tag p: / / p / a

- Izvēlieties jebkuru tagu, kas atrodas ap tagā (neatkarīgi no dziļuma) / / p / pēcnācējs :: a

- Atlasiet visus tagus, kas ir pēc p taga, bet tajā pašā līmenī: / / p / sekojošs-brālis :: a

Programmā Firefox varat izmantot DOM inspektoru, lai palīdzētu jums atrast elementus, kas jāizvēlas (CTRL + SHIFT + I).

Varat arī izmantot paplašinājumu, lai pārbaudītu XPath izteiksmes XPath.

Komunālie pakalpojumi

Skripts ccm.user.js satur 4 komunālo pakalpojumu klases, lai atvieglotu jūsu dzīvi:

removeElement (ceļš) : noņemiet vienumu no lapas.

removeAttributeOfElement (nomattribut Road) : noņemiet elementa atribūtu.

s etAttributeOfElement (nomattribut, vērtība, ceļš) : pievienojiet vai modificējiet elementa atribūtu

injCSS () : ievietojiet savu CSS lapā.

Ceļš ir XPath elementa ceļš.

Piemēri:

removeElement ()

 ... 
...

Lai izdzēstu atkritumus, tas būtu: removeElement ('/ / td / span [@ class =' ​​comment ']');

Lai dzēstu šūnu (td), kas satur šo blabla: removeElement ('/ / td / span [@ class =' ​​comment '] / ..');

Lai izdzēstu visus komentārus, pat ja tie nav tabulas šūnā, tas: removeElement ('/ / span [@ class =' ​​comment ']');

noņemtAttributeOfElement ()

 ... 
blablabla
...

Lai noņemtu šajā tabulā norādīto lielumu: removeAttributeOfElement ('platums', '// tabula [@ bgcolor =' # ffe ']');

setAttributeOfElement ()

 ... 
...

Lai piespiestu tabulas platumu: setAttributeOfElement ('platums', '100%', '// tabula [@ bgcolor =' # ffe ']');

injCSS ()

Lai mainītu noklusējuma fontu tīmekļa lapā:

injCSS ('ķermenis (font-family: Verdana, sans-serif;)');

Saites

GreaseMonkey paplašinājums: //addons.mozilla.org/fr/firefox/addon/748

GreaseMonkey rokasgrāmata: //diveintogreasemonkey.org/

Piezīme . Skriptu rakstīšana GreaseMonkey ne vienmēr ir vienkārša (obligāti jāiekļauj Javascript, DOM, HTML, CSS un XPath).

Platypus ir Firefox paplašinājums, kas ļauj automātiski ģenerēt skriptus GreaseMonkey:

//addons.mozilla.org/fr/firefox/addon/737

Bet Platypus ir tendence radīt Javascript kodu, kas ir diezgan lēns un apgrūtinošs.

Iepriekšējais Raksts Nākamais Raksts

Top Padomi