Εξατομικεύστε ιστοσελίδες με GreaseMonkey
Τι είναι το GreaseMonkey;
Το GreaseMonkey είναι μια επέκταση για τον Firefox που σας επιτρέπει να τροποποιήσετε τις ιστοσελίδες που επισκέπτεστε.
Δηλαδή, θα αλλάξει τη σελίδα απευθείας στο πρόγραμμα περιήγησης.
Αυτό σας επιτρέπει να αλλάξετε κατά βούληση όλες τις σελίδες οποιουδήποτε ιστότοπου όπως θέλετε: να αφαιρέσετε αντικείμενα που δεν σας αρέσουν, να επεξεργαστείτε το HTML, να προσθέσετε τον κώδικα HTML, να αλλάξετε / προσθέσετε / αφαιρέσετε javascript, να αλλάξετε χρώματα, να προσθέσετε χαρακτηριστικά, μειώστε το μέγεθος των πινάκων, των μορφών κ.λπ ...
Παράδειγμα 1
Αυτό το σενάριο θα τροποποιήσει τις σελίδες του Kioskea για να διευρύνει το πεδίο μηνυμάτων στα φόρουμ.
/ / Αυτό το σενάριο είναι δημόσιο τομέα.
//
// == UserScript ==
// @ όνομα KIOSKEA-Φόρουμ
// ΙΣΤΟΣΕΛΙΔΑ @namespace
// @description Τροποποίηση ιστοσελίδων ccm
// @ περιλαμβάνει //ccm.net/*
// @include //www.commentcamarche.com/*
// @include //www.commentcamarche.net/*
// == / UserScript ==
(λειτουργία () {
// Καταργεί όλες τις εμφανίσεις στοιχείων των οποίων το XPath παρέχεται από το έγγραφο.
//
// Παράδειγμα: Αφαιρέστε όλους τους πίνακες που χρησιμοποιούν την κλάση CSS "toto":
// removeElement ("// table [@ class = 'toto']");
λειτουργία removeElement (ElementXpath)
{
var alltags = document.evaluate (ΣτοιχείοXpath, έγγραφο, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
για (i = 0, i { στοιχείο = alltags.snapshotItem (i); element.parentNode.removeChild (στοιχείο); // Κατάργηση αυτού του στοιχείου από τον γονέα του. }} }} // Καταργεί ένα χαρακτηριστικό από όλες τις εμφανίσεις στοιχείων των οποίων το XPath παρέχεται. // (Όλες οι εμφανίσεις αυτών των στοιχείων επεξεργάζονται.) // // Παράδειγμα: Καταργήστε το bgcolor όλων // removeAttributeOfElement ('bgcolor', '// table [@bgcolor]') // Αφαιρέστε το σταθερό από όλα τα τραπέζια ή τα κελιά :: // removeAttributeOfElement ('πλάτος', '// πίνακας [@width] | // td [@width]') λειτουργία removeAttributeOfElement (attributeName, ElementXpath) { var alltags = document.evaluate (ΣτοιχείοXpath, έγγραφο, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); για (i = 0, i alltags.snapshotItem (i) .removeAttribute (χαρακτηριστικόName); }} // Ορίστε ένα χαρακτηριστικό από όλες τις εμφανίσεις στοιχείων σε μια καθορισμένη τιμή. // Η προηγούμενη τιμή αυτού του χαρακτηριστικού απορρίπτεται. // (Όλες οι εμφανίσεις αυτών των στοιχείων επεξεργάζονται.) // // Παράδειγμα: Ρύθμιση με έως 80 στήλες σε όλες τις texteareas: // setAttributeOfElement ('cols', 80, '// textarea') συνάρτηση setAttributeOfElement (attributeName, attributeValue, ElementXpath) { var alltags = document.evaluate (ΣτοιχείοXpath, έγγραφο, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); για (i = 0, i alltags.snapshotItem (i) .setAttribute (χαρακτηριστικόName, attributeValue) }} // Εισαγάγετε το δικό σας CSS στη σελίδα. // Παράδειγμα: Μην υπογραμμίζετε τον σύνδεσμο: // injectCSS ("a {text-decoration: none}}") λειτουργία injectCSS (cssdata) { κεφαλή = document.getElementsByTagName ("κεφάλι") [0]; style = document.createElement ("στυλ"); style.setAttribute ("τύπος", "κείμενο / css"); style.innerHTML = cssdata; head.appendChild (στυλ); }} προσπαθήστε { // Διεύρυνση του πεδίου του μηνύματος setAttributeOfElement ('rows', '40', 'textarea [@ name =' message '] "). setAttributeOfElement ('cols', '120', '// textarea [@ name =' μήνυμα '] "); // Στη λίστα συζητήσεων, θέσαμε με τόλμη τη συζήτηση που δεν έλαβε καμία απάντηση. setAttributeOfElement ('style', 'font-weight: bold;', '// td [text () =' 0 '] /../ td [1] / a "); }} αλιευμάτων (ε) { Προειδοποίηση ("εξαίρεση UserScript: \ n" + e); }} }) (); Το πιο σημαντικό μέρος του σεναρίου είναι: Αυτές οι δύο γραμμές αλλάζουν το μέγεθος (γραμμές, στήλες) του πλαισίου κειμένου (περιοχή κειμένου) που χρησιμοποιείται για την πληκτρολόγηση μηνυμάτων (αναγνωρισμένα με όνομα = "μήνυμα"). Χρησιμοποιεί XPath (/ / textarea ...) για να επιλέξει το στοιχείο στο οποίο θα ενεργήσει. Το XPath είναι ένας τρόπος για τον προσδιορισμό συγκεκριμένων στοιχείων μιας σελίδας HTML, αλλά η χρήση του δεν είναι υποχρεωτική. Μπορείτε να περάσετε από τις παραδοσιακές μεθόδους DOM (.GetElementsByTagName () και στη συνέχεια να κάνετε a for loop, κλπ.). Αυτό το script περιέχει επίσης αυτή τη γραμμή: Στον τομέα συζητήσεων του φόρουμ, αυτό θα προσθέσει τολμηρούς τίτλους σε συζητήσεις που δεν έχουν απαντηθεί. Το XPath: - Επιλέξτε τα κελιά πίνακα που περιέχουν το κείμενο "0" (td [text () = '0']) - Επιστρέψτε στο επίπεδο - Συνεχίζουμε στην πρώτη - Βάζουμε τολμηρούς όλους τους συνδέσμους (/ a) που περιέχονται σε αυτό Μερικά παραδείγματα: - Επιλέξτε όλες τις εικόνες: / / img - Επιλέξτε όλες τις εικόνες χωρίς σύνορα: / / img [@ border = '0'] - Επιλέξτε όλους τους συνδέσμους που οδηγούν στην Google: / / a [@ href = '//google.com'] - Επιλέξτε όλες τις συνδέσεις με το Google και περιέχει το κείμενο "Σύνδεσμος προς το Google: / / a [@ href = '//google.com" και περιέχει (., ' Σύνδεση με Google ')] - Επιλέξτε όλους τους συνδέσμους: / / a - Επιλέξτε μόνο εκείνες τις εικόνες που συνδέουν: / / a / img - Επιλέξτε μόνο τους συνδέσμους που τοποθετούνται απευθείας σε μια κελιά πίνακα: / / td / a - Επιλέξτε μόνο τον πρώτο σύνδεσμο που βρίσκεται απευθείας σε μια κελιά πίνακα: / / td / a [1] - Επιλέξτε μόνο τον τελευταίο σύνδεσμο που βρίσκεται απευθείας σε μια κελιά πίνακα: / / td / a [last ()] - Επιλέξτε όλα τα κελιά πίνακα που περιέχουν το ακριβές κείμενο "Hello": / / td [text () = 'Γεια σας'] - Επιλέξτε όλα τα κελιά πίνακα που περιέχουν (κάπου στο κείμενο) τη λέξη "Hello": / / td [περιέχει (., 'Hello')] - Επιλέξτε όλα τα κελιά πίνακα που αρχίζουν με το κείμενο "Hello": / / td [ξεκινά με (., 'Hello')] - Επιλέξτε όλους τους πίνακες που περιέχουν ένα κελί που περιέχει τη λέξη "foo": / / td [περιέχει (., 'Hello')] /../ .. (Το πρώτο / .. πίσω στο - Επιλέξτε όλα τα κελιά στη δεύτερη στήλη των πινάκων: / / tr / td [2] - Επιλέξτε όλα τα κελιά στην τελευταία στήλη των πινάκων: / / tr / td [last ()] - Επιλέξτε τα κελιά στις στήλες 1, 2 και 3: / / tr / td [θέση () <= 3] - Επιλέξτε όλους τους πίνακες με τουλάχιστον ένα χαρακτηριστικό: / / table [@ *] - Επιλέξτε όλους τους πίνακες με το πλάτος χαρακτηριστικών: / / table [@ width] - Επιλέξτε όλους τους πίνακες με πλάτος 400px: / / table [@ width = '400px'] - Επιλέξτε όλες τις ετικέτες που είναι άμεσες κόρες μιας κυψέλης: / / td / * - Επιλέξτε όλους τους συνδέσμους που είναι απευθείας γιος ενός κελιού: / / td / a - Επιλέξτε τον δεύτερο σύνδεσμο είναι ο άμεσος γιος ενός κελύφους: / / td / a [1] - Επιλέξτε την πρώτη ετικέτα σε ένα κελί, τι είναι: / / td / * [1] - Επιλέξτε την πρώτη ετικέτα με χαρακτηριστικό onload: / / td / * [@load] - Επιλέξτε την ετικέτα ως ετικέτα μετά το p στον κώδικα html: / / p / following :: a - Επιλέξτε τις ετικέτες που είναι αμέσως κορίτσια tag p: / / p / a - Επιλέξτε οποιαδήποτε ετικέτα που περιέχεται στην ετικέτα ap (ανεξάρτητα από το βάθος) / / p / απόγονος :: a - Επιλέξτε όλες τις ετικέτες που είναι μετά την ετικέτα p, αλλά στο ίδιο επίπεδο: / / p / following-sibling :: a Στον Firefox, μπορείτε να χρησιμοποιήσετε τον DOM Inspector για να βρείτε τα στοιχεία που θέλετε να επιλέξετε (CTRL + SHIFT + I). Μπορείτε επίσης να χρησιμοποιήσετε την επέκταση για να ελέγξετε τις XPath εκφράσεις XPath. Το σενάριο ccm.user.js περιέχει 4 κατηγορίες βοηθητικών προγραμμάτων για να διευκολύνει τη ζωή σας: removeElement (διαδρομή) : αφαιρέστε ένα στοιχείο από τη σελίδα. removeAttributeOfElement (nomattribut Road) : αφαιρέστε το χαρακτηριστικό ενός στοιχείου. s etAttributeOfElement (nomattribut, τιμή, διαδρομή) : προσθήκη ή τροποποίηση του χαρακτηριστικού ενός στοιχείου injectCSS () : εισάγετε το δικό σας CSS σε μια σελίδα. Το μονοπάτι είναι η διαδρομή του στοιχείου XPath. Παραδείγματα: Για να διαγράψετε τα σκουπίδια, θα ήταν: removeElement ('/ / td / span [@ class =' comment ']'); Για να διαγράψετε το κελί (td) που περιέχει το blabla: removeElement ('/ / td / span [@ class =' comment '] / ..'); Για να διαγράψετε όλα τα σχόλια, ακόμη κι αν δεν βρίσκονται σε κυψέλη πίνακα, θα ήταν: removeElement ('/ / span [@ class =' comment ']'); Για να καταργήσετε το μέγεθος που υποδεικνύεται σε αυτόν τον πίνακα: removeAttributeOfElement ('width', '// table [@ bgcolor =' # ffe ']'); Για να εξαναγκάσετε το πλάτος του πίνακα: setAttributeOfElement ('πλάτος', '100%', '// table [@ bgcolor =' # ffe ']'); Για να αλλάξετε την προεπιλεγμένη γραμματοσειρά σε μια ιστοσελίδα: injectCSS ('σώμα (γραμματοσειρά-οικογένεια: Verdana, sans-serif;)'); GreaseMonkey Επέκταση: //addons.mozilla.org/fr/firefox/addon/748 GreaseMonkey Εγχειρίδιο: //diveintogreasemonkey.org/ Σημείωση : Το script GreaseMonkey δεν είναι πάντα εύκολο (πρέπει να περιέχει Javascript, DOM, HTML, CSS και XPath προαιρετικά). Platypus είναι μια επέκταση του Firefox που επιτρέπει την αυτόματη δημιουργία σεναρίων GreaseMonkey: //addons.mozilla.org/fr/firefox/addon/737 Αλλά ο Platypus έχει την τάση να δημιουργεί κώδικα Javascript που είναι μάλλον αργός και δυσκίνητος.
:
setAttributeOfElement ('γραμμές', '40', '// textarea [@ name =' μήνυμα '] "); setAttributeOfElement ('cols', '120', '// textarea [@ name =' μήνυμα '] ");
Παράδειγμα 2
setAttributeOfElement ('style', 'font-weight: bold;', '// td [text () =' 0 '] /../ td [1] / a "); }}
( / .. ) (που περιέχει τον τίτλο) ( / td [1] ) . XPath
και / .. τις ακόλουθες ημερομηνίες στο )
Βοηθητικά προγράμματα
removeElement ()
...
μπλα μπλα μπλα ... removeAttributeOfElement ()
...
...
setAttributeOfElement ()
...
...
injectCSS ()
Συνδέσεις
Οι Καλύτερες Συμβουλές