मैं एक Greasemonkey स्क्रिप्ट लिखने की योजना बना रहा हूं, जो एक विशेष URL (@include या @match) पर चलेगी, लेकिन, मैं यह चाहूंगा कि यदि मैं एक ही URL के साथ एक या अधिक अतिरिक्त टैब खोलूं, तो Greasemonkey स्क्रिप्ट दूसरे (और आगे) डुप्लिकेट पृष्ठों पर नहीं चलेगी।
उदाहरण के लिए, मान लीजिए कि मेरे पास एक Greasemonkey स्क्रिप्ट है जो वेबपेज में "स्टाइल" में बदलाव करती है (या किसी अन्य तरीके से "modify" करता है) जब मैं "google.com" खोलता हूं। मैं "google.com" पर एक और टैब खोलने में सक्षम होना चाहता हूं जहां Greasemonkey स्क्रिप्ट नहीं चलेगी। या, अधिक सही ढंग से चलेगा, लेकिन यह पता लगाएगा कि यह पहले से ही चल रहा है और पहले टैब में पृष्ठ को संशोधित कर रहा है और फिर दूसरे टैब में "बाहर निकलें"। दूसरा टैब खुला रहेगा लेकिन स्क्रिप्ट से सिर्फ "अप्रभावित" है।
मैं नहीं जानता कि क्या एक ग्रीसीमोनी स्क्रिप्ट अन्य खोले गए टैब को "देख" सकता है, लेकिन अगर यह हो सकता है, तो मेरा पहला विचार यह जांचना था कि क्या एक अन्य टैब पहले से ही उस पृष्ठ पर लोड किया गया था, और फिर बाहर निकलने के लिए यदि यह पाया गया कि यह था
लेकिन यह उससे थोड़ा अधिक शामिल होना होगा क्योंकि:
- यदि पहला टैब बंद हो गया था और एक नया ("तीसरा") टैब उस URL पर खोला गया था, तो मैं चाहता हूं कि Greasemonkey स्क्रिप्ट चले और उस पृष्ठ को "संशोधित" करें क्योंकि यह पहले पृष्ठ पर होगा।
- इसी तरह, यदि मैं पहला टैब "रिफ्रेश" करता हूं (ग्रेसिमेक स्क्रिप्ट को संपादित करने के बाद, या किसी अन्य कारण से), तो मैं चाहता हूं कि ग्रीसेमनीकी स्क्रिप्ट को चलाएं और पुनः लोड किए गए पृष्ठ को "संशोधित" करें।
तो, ऐसा लगता है कि Greasemonkey स्क्रिप्ट या तो होगा:
- "मैच" खोजने के लिए एक दूसरे टैब के URL की जाँच करें, और फिर "Peek में उस टैब" को देखने के लिए कि क्या Greasemonkey स्क्रिप्ट "सक्रिय रूप से" उस पृष्ठ को संशोधित कर रहा था (शायद एक छिपा हुआ, खाली, जिसका नाम "DIV" या अन्य है तत्व)।
- टैब खोलने और बंद करने पर नज़र रखने के लिए "स्थानीय भंडारण" या "क्रॉस-टैब ग्लोबल (सुपरग्लोबल?) चर" के कुछ प्रकार का उपयोग करें।
मैं किसी के लिए इस स्क्रिप्ट को लिखने के लिए नहीं देख रहा हूं, मुझे लगता है कि मैं स्क्रिप्ट लिखने में सक्षम हूं अगर मुझे पता था कि कुछ चीजें कैसे करनी हैं। अगर एक स्क्रिप्ट जो इस या सभी में से अधिकांश पहले से मौजूद है, तो वह भी महान होगी।
आरंभ करने के लिए, मुझे यह जानने की आवश्यकता है कि क्या (और कैसे) एक ग्रेसीमेक स्क्रिप्ट:
- अन्य टैब को "देख" सकते हैं।
- अन्य टैब के URL (और शायद "शीर्षक" पाठ) पढ़ सकते हैं।
- दूसरे टैब में तत्वों के अस्तित्व की जाँच करें (और शायद पढ़ें लेकिन लिखें नहीं)।
- "स्थानीय (कंप्यूटर) स्टोरेज" प्रबंधित करें या "क्रॉस-टैब ग्लोबल वेरिएबल्स" प्रबंधित करें (यदि यह भी किया जा सकता है)।