A weblapok személyre szabása a GreaseMonkey segítségével
Mi a GreaseMonkey?
A GreaseMonkey a Firefox kiterjesztése, amely lehetővé teszi, hogy megcsípje a látogatott weboldalakat.
Ez azt jelenti, hogy az oldalt közvetlenül a böngészőben fogja megváltoztatni.
Ez lehetővé teszi, hogy tetszőleges webhely minden oldalát megváltoztassa: távolítsa el azokat az elemeket, amelyek nem tetszik, szerkesztheti a HTML-t, hozzáadja a HTML-kódot, módosíthatja / hozzáadhatja / eltávolíthatja a javascript-t, módosíthatja a színeket, hozzáadhatja a funkciókat, növelheti vagy növelheti a szolgáltatásokat csökkenti a táblák, űrlapok stb. méretét ...
1. példa
Ez a szkript módosítja a Kioskea oldalait az üzenetek mezőjének nagyítása érdekében a fórumokon.
/ / Ez a szkript nyilvános.
//
// == UserScript ==
// @name KIOSKEA-Fórum
// @namespace WEBOLDAL
// @description A ccm weblapjainak módosítása
// @include //ccm.net/*
// @include //www.commentcamarche.com/*
// @include //www.commentcamarche.net/*
// == / UserScript ==
(funkció () {
// Eltávolítja az olyan elemeket, amelyek XPath-jét a dokumentum tartalmazza.
//
// Példa: Távolítsa el az összes táblát, amely a "toto" CSS osztályt használja:
// removeElement ("// táblázat [@ class = 'toto']");
funkció eltávolításaElement (ElementXpath)
{
var alltags = document.evaluate (ElementXpath, dokumentum, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
a (i = 0; i { element = alltags.snapshotItem (i); element.parentNode.removeChild (elem); // Távolítsa el ezt az elemet a szülőtől. } } // Eltávolít egy attribútumot olyan elemekből, amelyek XPath-t tartalmaznak. // (Ezen elemek minden előfordulása feldolgozásra kerül.) // // Példa: Távolítsa el az összes bgcolor-ot // removeAttributeOfElement ('bgcolor', "// táblázat [@bgcolor]") // Távolítsa el a rögzített összes táblát vagy cellát: // removeAttributeOfElement ('szélesség', "// táblázat [@width] | // td [@width]") functionAtributeOfElement függvény (attribútumNeve, ElementXpath) { var alltags = document.evaluate (ElementXpath, dokumentum, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); a (i = 0; i alltags.snapshotItem (i) .removeAttribute (attributeName); } // Adjon meg egy attribútumot az elemek minden előfordulásától egy meghatározott értékre. // Az attribútum előző értéke eldobódik. // (Ezen elemek minden előfordulása feldolgozásra kerül.) // // Példa: 80 oszlopot állítson be az összes texteareasban: // setAttributeOfElement ('cols', 80, "// textarea") setAttributeOfElement függvény (attribútumName, attributeValue, ElementXpath) { var alltags = document.evaluate (ElementXpath, dokumentum, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); a (i = 0; i alltags.snapshotItem (i) .setAttribute (attributeName, attributeValue) } // Adja be a saját CSS-t az oldalon. // Példa: Ne nyissa ki a linket: // injCSS ("a {text-decoration: none;}") befecskendező szisztémás funkció (cssdata) { head = document.getElementsByTagName ("fej") [0]; style = document.createElement ("stílus"); style.setAttribute ("típus", "szöveg / css"); style.innerHTML = cssdata; head.appendChild (stílus); } próbáld ki { // A setAttributeOfElement üzenet mezőjének nagyítása ("sorok", "40", "// textarea [@ name = 'message']"); setAttributeOfElement ( 'oszlopok', '120', "// textarea [@ name = 'üzenet']"); // A viták listáján merészen tesszük a vitát, amelyre nem érkezett válasz. setAttributeOfElement ( 'stílusú', 'font-weight: Bold;', "// TD [szöveg () = '0'] /../ td [1] / A"); } fogás (e) { riasztás ("UserScript kivétel: n" + e); } }) (); A szkript legfontosabb része a következő: Ezek a két sor megváltoztatja az üzenetek írásához használt szövegdoboz (szövegterület) méretét (sorok, oszlopok), amelyek neve = "message". Az XPath (/ / textarea ...) használatával kiválaszthatja azt a elemet, amelyen cselekedni kell. Az XPath egy HTML oldal bizonyos elemeinek kijelölése, de használata nem kötelező. Átmehet a hagyományos DOM módszereken (.GetElementsByTagName (), majd a hurokhoz stb.). Ez a parancsfájl is tartalmazza ezt a sort: A fórum beszélgetési területén ez merész címeket ad a megbeszélésekhez, amelyekre nem válaszolt. Az XPath: - Válassza ki a "0" szöveget tartalmazó táblázatcellákat (td [text () = '0']) - Menj vissza a szintre - Folytatjuk az elsőt - Az itt szereplő linkeket félkövéren helyeztük el Néhány példa: - Minden kép kiválasztása: / / img - Minden szegély nélküli kép kiválasztása: / / img [@ border = '0'] - Válassza ki a Google-ra mutató összes linket: / / a [@ href = '//google.com'] - Válassza ki a Google-hoz tartozó összes linket, és tartalmazza a "Link a Google-hoz: / / a [@ href = '//google.com" szöveget és tartalmazza (., "Link a Google-hoz")] - Válassza ki az összes linket: / / a - Csak azokat a képeket válassza ki, amelyek: / / a / img - Csak a közvetlenül a tábla cellába helyezett linkeket válassza: / / td / a - Csak az első linket válassza ki közvetlenül a táblázat cellájában: / / td / a [1] - Csak az utolsó, közvetlenül a táblázat cellájába helyezett linket válassza: / / td / a [last ()] - Válassza ki az összes táblázat cellát, amely tartalmazza a "Hello" pontos szöveget: / / td [text () = 'Hello'] - Válassza ki az összes tábla cellát, amely (valahol a szövegben) a "Hello" szót tartalmazza : / / td [tartalmazza (., 'Hello')] - Válassza ki az összes tábla cellát a "Hello" szöveggel kezdve: / / td [start-with (., 'Hello')] - Válassza ki az összes táblát, amely egy "foo" szót tartalmazó cellát tartalmaz: / / td [tartalmazza (., 'Hello')] /../ .. (Az első / .. vissza a - Válassza ki az összes cellát a táblázatok második oszlopában: / / tr / td [2] - Válassza ki az összes cellát a táblázatok utolsó oszlopában: / / tr / td [last ()] - Válassza ki az oszlopokat az 1. és 3. oszlopban: / / tr / td [pozíció () <= 3] - Válassza ki az összes táblázatot, amely legalább egy attribútummal rendelkezik: / / table [@ *] - Válassza ki az összes táblát az attribútumszélességgel: / / table [@ width] - Válassza ki a 400px szélességű összes táblát: / / table [@ width = '400px'] - Válassza ki az összes címkét, amely egy cella közvetlen lánya: / / td / * - Válasszon ki minden olyan linket, amely közvetlenül egy sejt fia: / / td / a - Válassza ki a második linket a cella közvetlen fia: / / td / a [1] - Válassza ki az első címkét a cellában, mi az: / / td / * [1] - Válasszuk ki az első címkét az onload attribútummal: / / td / * [@ onload] - Válassza ki a címkét a címke után a html kódban: / / p / next :: a - Jelölje ki azokat a címkéket, amelyek azonnal lányok címkéje p: / / p / a - Válasszon ki egy olyan címkét, amely az ap címkében található (a mélységtől függetlenül) / / p / leszármazott :: a - Válassza ki az összes címkét, amely a címke után van, de ugyanazon a szinten: / / p / következő-testvér :: a A Firefoxban a DOM Inspector segítségével megkeresheti a kiválasztandó elemeket (CTRL + SHIFT + I). Használhatja a kiterjesztést az XPath XPath kifejezések tesztelésére is. A ccm.user.js parancsfájl 4 segédprogramot tartalmaz, amelyek megkönnyítik az életedet: removeElement (path) : egy elem eltávolítása az oldalról. removeAttributeOfElement (nomattribut Road) : egy elem attribútumának eltávolítása. s etAttributeOfElement (nomattribut, érték, elérési út) : egy elem attribútumának hozzáadása vagy módosítása injCSS () : adja meg saját CSS- jét egy oldalon. Az elérési út az XPath elem elérési útja. Példák: A szemét törléséhez: removeElement ('/ / td / span [@ class =' comment ']'); A blabla: removeElement tartalmú cellát (td) törölni ('/ / td / span [@ class =' comment '] / ..'); Az összes megjegyzés törléséhez, még akkor is, ha nincsenek táblázatos cellában, akkor: removeElement ('/ / span [@ class =' comment ']'); A táblázatban megadott méret eltávolításához: removeAttributeOfElement ('szélesség', '// táblázat [@ bgcolor =' # ffe ']'); A táblázat szélességének kényszerítéséhez: setAttributeOfElement ('szélesség', '100%', '// táblázat [@ bgcolor =' # ffe ']'); A weblap alapértelmezett betűkészletének módosítása: injCSS ('test (font-family: Verdana, sans-serif;)'); GreaseMonkey kiterjesztés: //addons.mozilla.org/fr/firefox/addon/748 GreaseMonkey kézikönyv: //diveintogreasemonkey.org/ Megjegyzés : A szkriptek írása A GreaseMonkey nem mindig könnyű (a Javascript, DOM, HTML, CSS és XPath opcionálisan). A Platypus egy Firefox kiterjesztés, amely lehetővé teszi a GreaseMonkey szkriptek automatikus létrehozását: //addons.mozilla.org/fr/firefox/addon/737 De Platypus hajlamos arra, hogy Javascript kódot generáljon, ami meglehetősen lassú és nehézkes.
:
setAttributeOfElement ( 'sorok', '40', "// textarea [@ name = 'üzenet']"); setAttributeOfElement ( 'oszlopok', '120', "// textarea [@ name = 'üzenet']");
2. példa
setAttributeOfElement ( 'stílusú', 'font-weight: Bold;', "// TD [szöveg () = '0'] /../ td [1] / A"); }
( / .. ) cella (amely tartalmazza a címet) ( / td [1] ) . XPath
és / .. következő dátumok a )
segédprogramok
removeElement ()
...
bla bla bla ... removeAttributeOfElement ()
...
...
setAttributeOfElement ()
...
...
injectCSS ()
linkek
Top Tippek