Greasemonkey. Reguli de rețea
Internet - un lucru minunat, dar pare nu sunt întotdeauna în mod corespunzător. Dzhuletta Kemp și Greasemonkey luate pentru a remedia problema.
Ideea care stă la baza Greasemonkey. foarte simplu. Această extensie de Firefox. și este stabilit în același mod ca și toți ceilalți (găsi folosind meniul Instrumente> Addons [Tools> Addons] și faceți clic pe Instalare [Install]). Cu toate acestea, de la sine nu face nimic, doar vă permite să rulați scripturi (proprii sau scrise de alți utilizatori dvs.), pentru a schimba aspectul și comportamentul de pagini web.
Partea 1 Primul meu script Greasemonkey
Dialog pentru a crea un nou scenariu în toată splendoarea sa. Descrie scenariul în detaliu: va simplifica viața ta în viitorPentru a simplifica scrierea script-ul, Greasemonkey oferă un dialog util. Imediat după instalarea Greasemonkey în colțul din dreapta jos al ferestrei Firefox bara de instrumente apare botul de maimuță. Faceți clic pe butonul din dreapta al mouse-ului, și va deschide un meniu, care va indica spre New Script [Script nou utilizator]. Selectați-l, și va apărea caseta de dialog, similar cu cel de pe dreapta.
„Descriere“ câmp conține o descriere a scenariului de acțiune. Întotdeauna l umple, chiar și pentru propriile lor scripturi - ei pot acumula foarte mult, și dacă vă lăsați informații despre ceea ce face ca fiecare scenariu, acestea vor fi mai ușor de gestionat.
Regulile de includere pot fi folosite sintaxa Magic TLD.tld. care se va potrivi cu orice domeniu de nivel superior (inclusiv al doilea nivel de tip domenii .co.uk etc.). De exemplu, example.tld corespunde example.com, example.co.uk, example.org și întregul set de alte domenii. Cu toate acestea, din motive de securitate, această sintaxă nu ar trebui să fie utilizat în cazul în care script-ul funcționează cu date personale.
document HTML - un arbore DOM de obiecte: fiecare din ramurile de nod copil de la părintele.Fișierul arată astfel:
Este timpul pentru a scrie script-ul în sine. El schimbă numai culoarea de fundal a tuturor paginilor din domeniu pentru a include alb. (Uneori, culoarea fundalului și nu arata cu adevarat.) Pentru paginile fara cadre sau alte complicații se face cu o singură linie:
Document - un mod de built-in pentru a lega la pagina curentă. Acest obiect DOM (Document Object Model - Document Object Model), care reprezintă întregul HTML-document. Ganditi-va ca un copac de HTML-elemente (obiecte). Fiecare element nou este un „copil“ în ceea ce privește anterior (aspectul la diagramă care prezintă o structură posibilă a corpului documentul HTML).
În acest model, pentru a se referi la notația obiect este utilizat obekt.potomok.potomkpotomka principal. Astfel, în primul rând există un element de corp. apoi stil elementul corp, și în cele din urmă, atributul stil de fundal al elementului corpului. Acest atribut este setat la alb (#FFFFFF - simbol alb în notație hexazecimală, este unul dintre standardele HTML ar putea fi folosite în mod simplu și alb.)
Pagina cu un fundal teribil și fundal alb calm.Greasemonkey este pornit și oprit făcând clic pe butonul din stânga al mouse-ului pe pictograma sa. O puteți dezactiva pentru a vedea cum arată pagina și apoi porniți, reîncărcați pagina și să vedem ce face script-ul.
Partea a 2 Definim stiluri CSS
Așa cum se arată în schema DOM, „sora“ element HTML-element este cel pe care îl conține. Imaginați-vă un document sub forma unui copac mare, pe care fiecare etichetă de deschidere (de exemplu,
) Începe o nouă ramură și fiecare închidere (de exemplu,
) Se termină. Tag-uri de auto-închidere (de exemplu,) Forma o sucursală, care nu poate fi afiliat. Astfel, căutarea poate fi limitată într-un paragraf sau un bloc div predeterminat.
Prima funcție (addCss) specifică o metodă de adăugare a foi de stil CSS la nivel mondial. document se referă din nou la pagina curentă, dar în acest exemplu, vom folosi funcția getElementsByTagName ( „pentru a obține elementele pe numele tag-ul“ - asta e ceea ce face) pentru a selecta primul element de cap. Pentru cei care nu sunt familiarizați cu CSS: stilurile sunt setate [inclusiv] în cap secțiuni HTML-fișier, și avem nevoie pentru a obține acest element pentru a deveni părintele noului element CSS. Există o linie care atrage o condiție de eroare atunci când secțiunea capului nu este (va reveni funcția fără nici o acțiune), apoi script-ul creează un element de stil și setează atributul type la text / css. On line
Funcția presupune că a trecut și introducerea lor în elementul de stil. Apoi element de stil complet creat se adaugă la elementul cap - asta e tot.
În ultimul rând funcția de apel cu un argument care stabilește culoarea de fond - în cazul în care linia cssString. Rețineți că vom folosi paranteze (). deoarece funcția de apel, nu-l definesc. Flag! garanții importante care CSS-stiluri suprascrie pagina specificată.
De fapt, acest cod adaugă următoarele linii în pagina HTML titlu:
În mod similar, puteți defini propriile stiluri CSS pentru orice element de pe pagina - trebuie doar să setați corespunzător CSS-string, care vor fi transmise funcția addCss. De exemplu, apelul
Setați culoarea de fundal alb, textul va face negru și aliniați lățimea acestuia.
Partea 3: Modificați elementele specificate
Așa că am învățat cum să se schimbe stilul unui obiect DOM element de remake-ul, sau o varietate de stiluri, adăugând propriul CSS-înregistrare, și putem aplica la site-ul specificat cu normele permit / excepții Greasemonkey. Și dacă avem nevoie pentru a găsi elementele de un anumit tip care apar pe pagina de câteva ori, și schimbați-le?
Al patrulea parametru specifică modul de a returna rezultate. Opțiunea specificată aici corespunde unui ordin arbitrar, care este cel mai adesea necesar. Dacă doriți să se întoarcă rezultate în ordinea în care apar în pagină, utilizați în schimb XPathResult.ORDERED_NODE_SNAPSHOT_TYPE. Ultima opțiune vă permite să combinați rezultatele interogării - pentru a trece rezultatul document.evaluate apel anterior. și să le înapoi împreună. Experiment cu ea!
Solicitare XPath (prima opțiune) - „motorul“ al funcției. XPath - un puternic limbaj de interogare pentru XML-documente, built-in Firefox [si nu numai - cca. Ed. ], Și poate fi folosit în Greasemonkey. Dacă sunteți în căutarea pentru un anumit set de elemente, puteți merge doar în jos copac DOM pentru a extrage seturi de noduri și pentru a găsi în ele titlu. Dar este destul de lent și nu foarte frumos în termeni de cod. XPath vă permite să găsiți pe pagina, tot ce trebuie să fie mult mai rapid și mai elegant. Le voi folosi în mai multe script-uri, și sperăm că va ajuta să înțelegeți cum funcționează - dacă doriți să aflați mai multe despre ea, uita-te pentru caietul de sarcini sau tutoriale online de pe web. Limba într-adevăr este foarte flexibil: dacă puteți defini un set de rezultate pe care doriți să le obțineți din documentul HTML, va fi capabil să scrie XPath și -interogare, care le va permite să se.
Să ne întoarcem la scenariul nostru: imaginile pe care le produse, și vrem ca ei să facă ceva. Aici următorul cod: adăugați-l imediat după cele de mai sus:
snapshotLength și snapshotItem - metode care operează pe rezultatul de apel și de a reveni, respectiv document.evaluate numărul total de rezultate, iar rezultatul dorit prin numărul său. Slide atât bucla pentru. ca în exemplul, și tratează fiecare element (aici, - fiecare imagine de pe pagină) rezultatul interogare XPath.
Inițial Greasemonkey a avut mai multe găuri de securitate grave cauzate de modul de punere în aplicare scripturi personalizate direct în pagina web, astfel script-urile sunt puse la dispoziție pentru paginile site-ului intruși. Acum, lucrări Greasemonkey diferit, executa într-adevăr un script în „sandbox“ și de a folosi elementul de înfășurare pentru a accesa obiectele din telecomandă pagina web pe care doriți să modificați scripturile.
Datorită particularităților punerii în aplicare a securității în scripturi Greasemonkey această metodă nu va funcționa. Trebuie să călătorească o cale ocolită.
thisImg.src ne dă valoarea atributului src a imaginii. Deci, pentru tag-ul
, thisImg.src reveni foo.jpg. (În mod similar, puteți obține valoarea de lățime sau înălțime atribute sau atribute orice altă etichetă img. O listă completă de elemente și atribute obiect DOM pot fi găsite pe internet.)Partea 4 înlocuirea textului
Acum vom încerca să înlocuiască textul care apare pe o pagină în câteva locuri. Să presupunem că sunteți bolnav de cuvântul „externalizare» [outsourcing], ici și colo, se profilează pe pagina de start a companiei, care, din păcate, trebuie să meargă în mod regulat. Înlocuiți-l cu „levak» [otherguy] (sau orice alt pe care le găsiți yumornym în loc plictisitor).
Prima bucată de cod am văzut deja în scenariul anterior. El se uită în document, toate nodurile de text. În continuare ne-am stabilit expresia regulată. Noul RegExp Constructor () are două argumente. Primul - un șir de căutare, al doilea - modificatori. g reprezintă conformitatea la nivel mondial: înlocuiește toate aparițiile, nu doar primul. (Cel mai probabil veți avea nevoie de ea.) I este comparație insensibil.
Există m modificator pentru un multi-mode, în care ancorele ^ și $ (adică începutul și sfârșitul liniei, respectiv) coincid cu pozițiile înainte și după linia de transfer, nu doar începutul și sfârșitul textului.
În cele din urmă, o altă buclă extinde XPath rezultată în urma interogării. Găsirea linia noastră și înlocuind-o cu o alta. Simplu!
Greasemonkey poate face mult mai mult - trebuie doar să experimenteze și să vedem ce se întâmplă. Ajustați Internetul pentru ei înșiși! LXF
bucuria de depanare
Într-o lume perfectă pentru toată lumea, indiferent de ceea ce scrie, doar începe să lucreze așa cum doriți. Mult noroc!
Cei care nu au de lucru o dată, un ajutor de depanare: