GreaseMonkey के साथ वेब पृष्ठों को निजीकृत करें

GreaseMonkey मोज़िला फ़ायरफ़ॉक्स वेब-ब्राउज़र का एक विस्तार है जो उपयोगकर्ताओं को उन वेब पृष्ठों को संशोधित करने की अनुमति देता है जो उन्होंने इंटरनेट पर सर्फिंग के दौरान देखे हैं। यह विशिष्ट सॉफ़्टवेयर उपयोगकर्ताओं को उनकी पसंद के अनुसार वेब पेजों को निजीकृत करने में सक्षम बनाता है, जिससे पृष्ठ के कुछ हिस्सों को बढ़ा या हटा दिया जाता है। स्क्रिप्टिंग लैंग्वेज और प्रोग्रामिंग लैंग्वेज का कुछ ज्ञान GreaseMonkey स्क्रिप्ट को लिखने के लिए आवश्यक है क्योंकि इनमें जावास्क्रिप्ट, DOM, HTML, CSS और XPATH के तत्व होते हैं। GreaseMonkey का उपयोग करते हुए वेब पेजों को निजीकृत करने में दिलचस्पी रखने वालों के लिए, पूरे उपयोगी मदद के लिए संपूर्ण स्वयं सहायता पुस्तिका इंटरनेट से मुफ्त में डाउनलोड की जा सकती है।

GreaseMonkey क्या है?

GreaseMonkey फ़ायरफ़ॉक्स के लिए एक एक्सटेंशन है जो आपको आपके द्वारा देखे जाने वाले फ़्लाई वेब पेजों पर ट्विक करने की अनुमति देता है।

यही है, यह पृष्ठ को सीधे ब्राउज़र में बदल देगा।

यह आपको इच्छानुसार किसी भी साइट के सभी पृष्ठों को बदलने की अनुमति देता है: वे आइटम जिन्हें आप पसंद नहीं करते हैं, HTML को संपादित करें, HTML कोड जोड़ें, जावास्क्रिप्ट बदलें, रंग जोड़ें / हटाएं, रंग बदलें, सुविधाएँ जोड़ें, बढ़ाएँ या तालिकाओं, रूपों आदि के आकार में कमी ...

उदाहरण 1

यह स्क्रिप्ट मंचों में संदेश क्षेत्र को बढ़ाने के लिए कियोस्किया के पृष्ठों को संशोधित करेगी।

/ / यह स्क्रिप्ट सार्वजनिक डोमेन में है।

//

// == उपयोगकर्तास्क्रिप्ट ==

// @name KIOSKEA-मंच

// @namespace वेबसाइट

// @description ccm के वेब पृष्ठों को संशोधित करें

// @include //ccm.net/*

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

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

// == / यूजरस्क्रिप्ट ==

(समारोह () {

// उन सभी आवृत्तियों को हटा देता है जिनके XPath दस्तावेज़ से प्रदान किया गया है।

//

// उदाहरण: सीएसएस वर्ग 'टोटो' का उपयोग करने वाले सभी तालिकाओं को हटा दें:

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

फंक्शन रिमूवल (एलिमेंटएक्सपैथ)

{

var alltags = document.ev मूल्यांकन (ElementXpath, document, 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]")

फ़ंक्शन को हटाएंअभिव्यक्तिऑफ्लीमेंट (विशेषतानाम, एलिमेंटएक्सपैथ)

{

var alltags = document.ev मूल्यांकन (ElementXpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

के लिए (i = 0; i)

alltags.snapshotItem (i) .removeAttribute (AttributeName);

}

// एक निर्दिष्ट मान के लिए तत्वों के सभी घटनाओं से एक विशेषता सेट करें।

// इस विशेषता का पिछला मान छोड़ दिया गया है।

// (इस तत्व की सभी घटनाओं को संसाधित किया जाता है।)

//

// उदाहरण: सभी बनावट पर 80 कॉलम के साथ सेट करें:

// setAttributeOfElement ('कॉल', 80, "// textarea")

फ़ंक्शन सेट करेंअभियोजनऑफ्लीमेंट (विशेषतानाम, विशेषतावैल्यू, एलीमेंटएक्सपैथ)

{

var alltags = document.ev मूल्यांकन (ElementXpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

के लिए (i = 0; i)

alltags.snapshotItem (i) .setAttribute (विशेषता नाम, विशेषतावैल्यू)

}

// पेज में अपने खुद के सीएसएस इंजेक्षन।

// उदाहरण: लिंक को रेखांकित न करें:

// इंजेक्ट्स ("ए-टेक्स्ट-डेकोरेशन: कोई नहीं;}")

फंक्शन इंजेक्ट्स (cssdata)

{

हेड = डॉक्यूमेंट.गेट इलज़ामबायटैगनेम ("हेड") [0];

style = document.createElement ("शैली");

style.setAttribute ("प्रकार", 'पाठ / सीएसएस');

style.innerHTML = cssdata;

head.appendChild (शैली);

}

प्रयत्न

{

// मैसेज सेट के क्षेत्र को बढ़ाना ।AttributeOfElement ('पंक्तियाँ', '40', "// textarea [@ name = 'message']");

setAttributeOfElement ( 'कॉलम', '120', "// पाठ क्षेत्र [@ name = 'संदेश']");

// चर्चा की सूची में, हमने उस चर्चा को बोल्ड रखा है जिसे कोई उत्तर नहीं मिला है। setAttributeOfElement ( 'शैली', 'font-weight: bold;', "// टीडी [पाठ () = '0'] /../ टीडी [1] / एक");

}

पकड़ (ई)

{

चेतावनी ("उपयोगकर्ता अपवाद अपवाद: \ n" + ई);

}

}) ();

स्क्रिप्ट का सबसे महत्वपूर्ण हिस्सा है:

 setAttributeOfElement ( 'पंक्तियों', '40', "// पाठ क्षेत्र [@ name = 'संदेश']"); setAttributeOfElement ( 'कॉलम', '120', "// पाठ क्षेत्र [@ name = 'संदेश']"); 

ये दो पंक्तियाँ संदेश टाइप करने के लिए उपयोग किए गए टेक्स्ट बॉक्स (टेक्स्ट एरिया) के आकार (पंक्तियाँ, कॉल) को बदल देती हैं (नाम से पहचाना जाता है = "संदेश")।

यह उस तत्व का चयन करने के लिए XPath (/ / textarea ...) का उपयोग करता है जिस पर कार्य करना है।

XPath एक HTML पृष्ठ के विशिष्ट तत्वों को नामित करने का एक तरीका है, लेकिन इसका उपयोग अनिवार्य नहीं है।

आप पारंपरिक DOM विधियों (.GetElementsByTagName () और फिर लूप, आदि के लिए जा सकते हैं) के माध्यम से जा सकते हैं।

उदाहरण 2

इस स्क्रिप्ट में यह पंक्ति भी है:

 setAttributeOfElement ( 'शैली', 'font-weight: bold;', "// टीडी [पाठ () = '0'] /../ टीडी [1] / एक"); } 

फोरम के चर्चा क्षेत्र में, यह उन चर्चाओं के लिए बोल्ड शीर्षक जोड़ देगा, जिनका उत्तर नहीं दिया गया है।

XPath:

- "0" (td [text () = '0']) वाले टेबल सेल चुनें

- स्तर पर वापस जाओ

( / .. )

- हम पहले में चलते हैं

और / .. निम्नलिखित तारीखों में
सेल (जिसमें शीर्षक होता है) ( / td [1] )

- हम इसमें निहित सभी लिंक (/ a) को बोल्ड करते हैं

XPath

कुछ उदाहरण:

- सभी छवियों का चयन करें: / / img

- सीमाओं के बिना सभी छवियों का चयन करें: / / img [@ सीमा = '0']

- Google को इंगित करने वाले सभी लिंक चुनें: / / [[@ href = '//google.com']

- Google के सभी लिंक चुनें और पाठ "Google से लिंक करें: / / [[@ href = '//google.com और जिसमें (, ' Google से लिंक ')] शामिल हों

- सभी लिंक का चयन करें: / / a

- केवल उन छवियों का चयन करें जो लिंक करती हैं: / / a / img

- टेबल सेल में सीधे रखे गए लिंक का ही चयन करें: / / td / a

- टेबल सेल में सीधे रखा गया पहला लिंक चुनें: / / td / [एक]

- टेबल सेल में सीधे रखे गए अंतिम लिंक को ही चुनें: / / td / a [last ()]

- सटीक पाठ "हैलो": / / td [पाठ () = 'हैलो'] युक्त सभी तालिका कक्षों का चयन करें

- (पाठ में कहीं) युक्त सभी तालिका कक्षों का चयन करें शब्द "हैलो": / / td [जिसमें (,, '' '']]

- "हैलो": / / td [शुरू-साथ (,, 'हैलो')] पाठ के साथ शुरू होने वाली सभी तालिका कोशिकाओं का चयन करें

- "फू" शब्द से युक्त सेल वाले सभी तालिकाओं का चयन करें: / / td [(,, 'हैलो')] /../ .. (पहला / .. वापस।

)

- तालिकाओं के दूसरे कॉलम में सभी कोशिकाओं का चयन करें: / / tr / td [2]

- तालिकाओं के अंतिम कॉलम में सभी कोशिकाओं का चयन करें: / / tr / td [अंतिम ()]

- कॉलम 1, 2 और 3 तालिकाओं में कोशिकाओं का चयन करें: / / tr / td [स्थिति () <= 3]

- कम से कम एक विशेषता के साथ सभी तालिकाओं का चयन करें: / / तालिका [@ *]

- विशेषता चौड़ाई के साथ सभी तालिकाओं का चयन करें: / / तालिका [@ चौड़ाई]

- 400px की चौड़ाई वाले सभी तालिकाओं का चयन करें: / / table [@ चौड़ाई = '400px']

- उन सभी टैग्स का चयन करें जो किसी सेल की डायरेक्ट बेटियां हैं: / / td / *

- उन सभी लिंक का चयन करें जो सीधे सेल के बेटे हैं: / / td / a

- दूसरे लिंक का चयन करें सेल का सीधा बेटा है: / / td / [1]

- सेल में पहले टैग का चयन करें, यह क्या है: / / td / * [1]

- ऑनलोड विशेषता वाला पहला टैग चुनें: / / td / * [@ onload]

- html कोड में p के बाद टैग होने का टैग चुनें: / / p / follow :: a

- उन टैग्स का चयन करें जो तुरंत लड़कियों के टैग p: / / p / a हैं

- एपी टैग (गहराई की परवाह किए बिना) / / p / descendant :: a में निहित किसी भी टैग का चयन करें

- पी टैग के बाद होने वाले सभी टैग का चयन करें, लेकिन एक ही स्तर पर: / / p / निम्नलिखित-भाई: :: ए

फ़ायरफ़ॉक्स में, आप तत्वों का चयन करने में मदद करने के लिए डोम इंस्पेक्टर का उपयोग कर सकते हैं (CTRL + SHIFT + I)।

आप अपने XPath एक्सप्रेशन XPath का परीक्षण करने के लिए एक्सटेंशन का भी उपयोग कर सकते हैं।

उपयोगिताएँ

स्क्रिप्ट ccm.user.js में आपके जीवन को आसान बनाने के लिए उपयोगिताओं के 4 वर्ग हैं:

निष्कासन (पथ) : पृष्ठ से कोई आइटम निकालें।

removeAttributeOfElement (नामांकित सड़क) : एक तत्व की विशेषता को हटा दें।

s etAttributeOfElement (नामित, मान, पथ) : किसी तत्व की विशेषता को जोड़ना या संशोधित करना

इंजेक्टएसएस () : अपने सीएसएस को एक पेज में इंजेक्ट करें।

पथ XPath तत्व का पथ है।

उदाहरण:

removeElement ()

 ... 
...

बकवास को हटाने के लिए, यह होगा: removeElement ('/ / td / span [@ class =' ​​comment ']');

उस ब्लाब्ला युक्त सेल (td) को हटाने के लिए: removeElement ('/ / td / span [@ class =' ​​comment '] / ..');

सभी टिप्पणियों को हटाने के लिए, भले ही वे तालिका सेल में न हों, यह होगा: हटाने ('/ / अवधि [@ वर्ग =' टिप्पणी ']');

removeAttributeOfElement ()

 ... 
blablabla
...

इस तालिका में संकेतित आकार को हटाने के लिए: removeAttributeOfElement ('चौड़ाई', '// टेबल [@ bgcolor =' # ffe ']');

setAttributeOfElement ()

 ... 
...

तालिका की चौड़ाई को बाध्य करने के लिए: setAttributeOfElement ('चौड़ाई', '100%', '// तालिका [@ bgcolor =' # ffe ']');

injectCSS ()

वेब पेज पर डिफ़ॉल्ट फ़ॉन्ट बदलने के लिए:

इंजेक्ट्स ('शरीर (फ़ॉन्ट-परिवार: वरदाना, संस-सेरिफ़;)');

लिंक

GreaseMonkey एक्सटेंशन: //addons.mozilla.org/fr/firefox/addon/748

ग्रीज़मोंकी मैनुअल: //diveintogreasemonkey.org/

नोट : स्क्रिप्ट लिखना GreaseMonkey हमेशा आसान नहीं होता (इसमें जावास्क्रिप्ट, DOM, HTML, CSS और XPath वैकल्पिक रूप से होना चाहिए)।

प्लैटिपस एक फ़ायरफ़ॉक्स एक्सटेंशन है जो स्वचालित रूप से स्क्रिप्ट बनाने के लिए अनुमति देता है GreaseMonkey:

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

लेकिन प्लैटिपस में जावास्क्रिप्ट कोड उत्पन्न करने की प्रवृत्ति होती है जो कि धीमी और बोझिल होती है।

पिछला लेख अगला लेख

शीर्ष युक्तियाँ