Social BrowserProfiles, AI और ऑटोमेशन

User Scripts · वास्तविक पन्ने बदलकर सीखें

वेबसाइटों को अपनी इच्छानुसार थोड़ा और कार्यशील बनाएं।

User Script कोड का एक छोटा टुकड़ा है जो मेल खाने वाले वेब पेजों के अंदर चलता है। कुछ पंक्तियों से प्रारंभ करें, एक उपयोगी परिवर्तन करें, फिर JavaScript केवल तभी सीखें जब आपको इसकी आवश्यकता हो।

शुरुआती-अनुकूलप्रत्येक पाठ में अभ्यास करेंJavaScript, CSS और HTMLSocial Browser में निर्मितAI ऑटोमेशन के साथ काम करता है
कभी कोई स्क्रिप्ट नहीं लिखी?पाठ 1 से प्रारंभ करें। हम आपको आवश्यक न्यूनतम JavaScript समझाते हैं।
क्या आप पहले से ही टैम्परमॉन्की-शैली स्क्रिप्ट का उपयोग कर रहे हैं?मेटाडेटा, मिलान, दायरा और Social Browser Profiles पर जाएं।
पूर्ण कार्यप्रवाह चाहते हैं?User Scripts को Automation Studio और MCP AI-driven workflows के साथ इस्तेमाल करें।

एक व्यावहारिक स्क्रिप्टिंग पाठ्यक्रम

पांच चरण. प्रत्येक चरण में एक उपयोगी परिणाम।

हर परीक्षा को छोटा रखें. एक अच्छा User Script समझने में आसान, अक्षम करने में आसान और उन पृष्ठों तक सीमित होना चाहिए जहां वह है।

कामकाजी उदाहरण

एक छोटी सी स्क्रिप्ट कॉपी करें. पृष्ठ परिवर्तन देखें.

हानिरहित पृष्ठ सुधारों से शुरुआत करें। प्रत्येक उदाहरण जानबूझकर छोटा है ताकि आप इसका उपयोग करने से पहले प्रत्येक पंक्ति को समझ सकें।

स्क्रिप्ट बनाना सीखें →
स्टार्टर · JavaScript

एक महत्वपूर्ण मूल्य पर प्रकाश डालें

एक तत्व ढूंढें और उसे नोटिस करना आसान बनाएं।

उदाहरण
const total = document.querySelector('.total');if (total) { total.style.background = '#fff3a6'; total.style.fontWeight = '700';}

इसके लिए इसका उपयोग करें: डैशबोर्ड, कुल योग, स्थिति लेबल या QA पृष्ठ जिन्हें आप नियंत्रित करते हैं।

JavaScript सीखें
स्टार्टर · CSS

ध्यान भटकाने वाला साइडबार छुपाएं

कभी-कभी आपको केवल एक CSS नियम की आवश्यकता होती है।

उदाहरण CSS
.promo-sidebar { display: none !important;}

इसके लिए इसका उपयोग करें: स्वच्छ आंतरिक डैशबोर्ड या पृष्ठ जिनकी आप बार-बार समीक्षा करते हैं।

CSS और HTML सीखें
बिल्डर · JavaScript

मान के बगल में एक कॉपी बटन जोड़ें

कॉपी/पेस्ट चरणों को मैन्युअल रूप से दोहराने के बजाय एक छोटा सहायक बनाएं।

उदाहरण
const value = document.querySelector('#order-id');if (value) { const button = document.createElement('button'); button.textContent = 'Copy'; button.onclick = () => navigator.clipboard.writeText(value.textContent.trim()); value.after(button);}

इसके लिए इसका उपयोग करें: आईडी, संदर्भ या गैर-संवेदनशील मान जो आप अक्सर कॉपी करते हैं।

घटनाओं को जानें
प्रतिक्रिया · गतिशील पृष्ठ

बाद में दिखाई देने वाली सामग्री की प्रतीक्षा करें

आधुनिक पेज अक्सर पहले लोड के बाद प्रस्तुत होते हैं। केवल उसी चीज़ का निरीक्षण करें जिसकी आपको आवश्यकता है।

उदाहरण
const observer = new MutationObserver(() => { const result = document.querySelector('.result-ready'); if (!result) return; result.style.outline = '2px solid #4caf50'; observer.disconnect();});observer.observe(document.body, { childList: true, subtree: true });

इसके लिए इसका उपयोग करें: एसपीए डैशबोर्ड और विलंबित पेज विजेट।

गतिशील पृष्ठ सीखें
एकीकृत करें · Profiles

अलग-अलग Profiles में एक ही सहायक का उपयोग करें

स्क्रिप्ट पुन: प्रयोज्य रहती है जबकि प्रत्येक Profile अपना स्वयं का ब्राउज़र सत्र और पृष्ठ स्थिति रखता है।

वही स्क्रिप्ट→Profile ए+Profile बी+Profile सी
  1. एक छोटी स्क्रिप्ट बनाएं.
  2. केवल इच्छित साइट से मिलान करें.
  3. विभिन्न परीक्षण Profiles में साइट खोलें।
  4. पुष्टि करें कि सहायक प्रत्येक संदर्भ में सही ढंग से व्यवहार करता है।
स्क्रिप्ट सीखें + Profiles
उन्नत · उपकरण चुनें

User Script + Automation Studio

User Script में लगातार पेज हेल्पर्स और Automation Studio में मल्टी-स्टेप ऑर्केस्ट्रेशन रखें।

User Script+वर्कफ़्लो→पुन: प्रयोज्य प्रक्रिया
  1. User Script मिलान पृष्ठ को बेहतर बनाता है।
  2. Workflow ऑर्डर किए गए ब्राउज़र चरण निष्पादित करता है।
  3. स्वचालन Profiles और निष्पादन नीति का चयन करता है।
  4. टास्क तय करता है कि कब चलना है.
जानें कि उन्हें कब संयोजित करना है
इंटरनेट से कोड चलाने से पहले: इसे पढ़ें, समझें कि यह किन पेजों से मेल खाता है, स्टोरेज/नेटवर्क व्यवहार की जांच करें और नियंत्रित Profile में इसका परीक्षण करें। ये उदाहरण जानबूझकर पासवर्ड, कुकीज़ और सत्र डेटा से बचते हैं।

जीएम API उदाहरण पुस्तकालय

उपयोगी जीएम रेसिपी जिन्हें आप कॉपी कर सकते हैं, पढ़ सकते हैं और अपना सकते हैं।

प्रत्येक उदाहरण जानबूझकर छोटा है. एक समस्या से प्रारंभ करें, स्क्रिप्ट की प्रतिलिपि बनाएँ, प्रत्येक पंक्ति पढ़ें, फिर केवल चयनकर्ता, URLs या आपके द्वारा समझे जाने वाले लेबल बदलें।

पूर्ण GM API गाइड खोलें →
कोई सेटिंग याद है? भंडारणकोई अन्य मूल पढ़ें? नेटवर्कएक पेज सहायक जोड़ें? पेज सहायकउपयोगकर्ता कार्रवाई जोड़ें? मेनू आदेशउपयोगकर्ता को सचेत करें? सूचनाएंकोई फ़ाइल सहेजें? डाउनलोड
स्टार्टर · भंडारण

कॉम्पैक्ट-मोड प्राथमिकता याद रखें

एक हानिरहित यूआई प्राथमिकता सहेजें और अगले पेज लोड पर इसे पुनर्स्थापित करें।

JavaScript · लगातार प्राथमिकता
// ==UserScript==// @name Compact mode preference// @match https://example.com/*// @grant GM_getValue// @grant GM_setValue// ==/UserScript== const compact = GM_getValue('compact', false);document.documentElement.classList.toggle('my-compact-mode', compact); const button = document.createElement('button');button.textContent = compact ? 'Use normal mode' : 'Use compact mode';button.addEventListener('click', () => { GM_setValue('compact', !compact); location.reload();});document.body.prepend(button);
जीएम भंडारण सीखें
बिल्डर · पेज सहायक

एक छोटा सहायक पैनल जोड़ें

वेबसाइट लेआउट को बदले बिना CSS और एक सहायक तत्व इंजेक्ट करें।

JavaScript · GM_addStyle + GM_addElement
// @grant GM_addStyle// @grant GM_addElement GM_addStyle(` .sb-helper { position: fixed; right: 16px; bottom: 16px; padding: 10px 12px; background: #111827; color: white; border-radius: 8px; z-index: 2147483647; }`); GM_addElement(document.body, 'div', { class: 'sb-helper', textContent: 'Page helper is active'});
पेज हेल्पर्स सीखें
बिल्डर · नेटवर्क

किसी अनुमत API से JSON पढ़ें

जब आपको आवश्यक डेटा वर्तमान पृष्ठ का हिस्सा न हो तो विशेषाधिकार प्राप्त अनुरोध का उपयोग करें।

JavaScript · GM_xmlhttpRequest
// ==UserScript==// @name API status helper// @match https://example.com/*// @grant GM_xmlhttpRequest// @connect api.example.com// ==/UserScript== GM_xmlhttpRequest({ method: 'GET', url: 'https://api.example.com/status', responseType: 'json', onload(response) { console.log('Status:', response.response?.status); }, onerror(error) { console.error('Request failed:', error); }});
विशेषाधिकार प्राप्त अनुरोध जानें
प्रतिक्रिया · क्लिपबोर्ड

किसी पृष्ठ संदर्भ को सुरक्षित रूप से कॉपी करें

स्पष्ट उपयोगकर्ता क्लिक के बाद एक गैर-संवेदनशील मान की प्रतिलिपि बनाएँ।

JavaScript · GM_setClipboard
// @grant GM_setClipboard const reference = document.querySelector('#reference-id');if (reference) { const copyButton = document.createElement('button'); copyButton.textContent = 'Copy reference'; copyButton.addEventListener('click', () => { GM_setClipboard(reference.textContent.trim(), 'text'); copyButton.textContent = 'Copied'; }); reference.after(copyButton);}
क्लिपबोर्ड एक्सेस सीखें
प्रतिक्रिया · मेनू आदेश

User Script मेनू में एक स्क्रिप्ट क्रिया जोड़ें

वैकल्पिक कार्रवाइयों को पेज यूआई से बाहर रखें और उन्हें केवल तभी चलाएं जब उपयोगकर्ता पूछे।

JavaScript · GM_registerMenuCommand
// @grant GM_registerMenuCommand GM_registerMenuCommand('Highlight overdue rows', () => { document.querySelectorAll('[data-status="overdue"]').forEach(row => { row.style.outline = '2px solid currentColor'; });});
मेनू कमांड सीखें
एकीकृत · अधिसूचना

लंबे पृष्ठ का कार्य तैयार होने पर सूचित करें

केवल सार्थक घटना के लिए ब्राउज़र अधिसूचना दिखाएं।

JavaScript · GM_नोटिफिकेशन
// @grant GM_notification function notifyReady(label) { GM_notification({ title: 'Social Browser User Script', text: `${label} is ready to review`, timeout: 5000 });} // Call this only after your script detects the result.notifyReady('The report');
सूचनाएं जानें
· टैब एकीकृत करें

पृष्ठभूमि टैब में संबंधित पृष्ठ खोलें

उपयोगकर्ता जिस पृष्ठ की समीक्षा कर रहा है उसे बदले बिना सहायक जानकारी खोलें।

JavaScript · GM_openInTab
// @grant GM_openInTab const helpButton = document.createElement('button');helpButton.textContent = 'Open details';helpButton.addEventListener('click', () => { GM_openInTab('https://example.com/details', { active: false, insert: true });});document.body.prepend(helpButton);
जानें टैब APIs
उन्नत · टैब स्थिति

एक ब्राउज़र टैब की प्रगति याद रखें

वैश्विक भंडारण के बजाय अस्थायी स्क्रिप्ट स्थिति को वर्तमान टैब से संलग्न रखें।

JavaScript · GM_getTab + GM_saveTab
// @grant GM_getTab// @grant GM_saveTab GM_getTab(tabState => { tabState.reviewStep = (tabState.reviewStep || 0) + 1; GM_saveTab(tabState); console.log('Review step:', tabState.reviewStep);});
प्रति-टैब स्थिति जानें
उन्नत · डाउनलोड करें

एक रिपोर्ट फ़ाइल डाउनलोड करें

उस फ़ाइल के लिए डाउनलोड क्षमता का उपयोग करें जिसे उपयोगकर्ता ने जानबूझकर स्क्रिप्ट को सहेजने के लिए कहा है।

JavaScript · GM_डाउनलोड
// @grant GM_download GM_download({ url: 'https://example.com/reports/today.csv', name: 'today-report.csv', saveAs: true, onload() { console.log('Download completed'); }, onerror(error) { console.error('Download failed:', error); }});
डाउनलोड सीखें
उन्नत · संसाधन

एक छोटे टेक्स्ट संसाधन को स्क्रिप्ट के साथ बंडल करें

किसी बड़े पुन: प्रयोज्य टेक्स्ट एसेट को हार्ड-कोड करने के बजाय घोषित संसाधन का संदर्भ दें।

JavaScript · @resource + GM_getResourceText
// ==UserScript==// @name Template resource example// @match https://example.com/*// @resource helperTemplate https://example.com/assets/helper.html// @grant GM_getResourceText// ==/UserScript== const template = GM_getResourceText('helperTemplate');if (template) { const box = document.createElement('div'); box.innerHTML = template; document.body.append(box);}
संसाधन सीखें
कॉपी किया गया कोड चलाने से पहलेइसे पढ़ें, इसे संक्षिप्त करें @match नियम, प्रत्येक की समीक्षा करें @grant and @connect, और पहले इसे सुरक्षित Profile में परीक्षण करें।
User Scripts कोर्सपाठ्यक्रम सिंहावलोकन
एक पाठ चुनें या निर्देशित पाठ्यक्रम शुरू करें।
स्टार्टर · पाठ 1

User Script वास्तव में क्या है?

समय 5 मिनटलक्ष्य समझें कि User Scripts क्या बदल सकते हैं

एक User Script JavaScript है जो ब्राउज़र आपके लिए उन पृष्ठों पर चलता है जो आपके द्वारा चुने गए नियमों से मेल खाते हैं। पेज खुलने के बाद यह किसी वेबसाइट में छोटे-छोटे बदलाव कर सकता है: जानकारी को हाइलाइट करना, शॉर्टकट जोड़ना, अव्यवस्था छिपाना, बार-बार आने वाले फॉर्म की सहायता करना, या पेज की घटनाओं पर प्रतिक्रिया देना।

बिना स्क्रिप्ट के

  1. पेज खोलें.
  2. वही छोटा सा समायोजन करें.
  3. अगली मुलाकात पर इसे दोहराएँ।

User Script के साथ

  1. एक बार नियम बनाएं.
  2. इसे सही पृष्ठों तक सीमित रखें।
  3. उन पेजों के खुलने पर इसे स्वचालित रूप से चलने दें।

Social Browser के अंदर User Scripts उपयोगी क्यों हैं?

Social Browser लगातार ब्राउज़र Profiles के साथ User Scripts को जोड़ता है। एक Profile अपना स्वयं का सत्र, भंडारण, सेटिंग्स और स्क्रिप्ट रख सकता है, इसलिए एक छोटा अनुकूलन ब्राउज़र संदर्भ के करीब रह सकता है जहां आप वास्तव में इसका उपयोग करते हैं।

महत्वपूर्ण: एक User Script वेब पेजों के अंदर कोड चलाता है। केवल उन्हीं स्रोतों से स्क्रिप्ट इंस्टॉल करें जिन्हें आप समझते हैं और जिन पर आपको भरोसा है। एक उपयोगी स्क्रिप्ट पढ़ने में आसान, आवश्यक पृष्ठों तक सीमित और अक्षम करने में आसान होनी चाहिए।
स्टार्टर · पाठ 2

अपना पहला User Script बनाएं

समय 5-10 मिनटलक्ष्य एक छोटी स्क्रिप्ट चलाएँ और एक पृष्ठ परिवर्तन देखें

किसी हानिरहित और दृश्यमान चीज़ से शुरुआत करें। लक्ष्य संपूर्ण प्रवाह को सिद्ध करना है: बनाएं → सहेजें → सक्षम करें → एक मिलान पृष्ठ खोलें → परिणाम देखें।

1

User Scripts खोलें

Social Browser में अंतर्निहित User Script प्रबंधक खोलें और एक नई स्क्रिप्ट बनाएं।

2

इसे स्पष्ट नाम दें

ऐसे नाम का उपयोग करें जो बताता हो कि स्क्रिप्ट क्या करती है, जैसे Highlight Test Heading.

3

एक सुरक्षित परीक्षण पृष्ठ चुनें

उस पृष्ठ का उपयोग करें जिसे आप नियंत्रित करते हैं या एक हानिरहित पृष्ठ का उपयोग करें जहां प्रदर्शन बदलने से डेटा सबमिट नहीं होगा या कोई खाता नहीं बदलेगा।

4

JavaScript की कुछ पंक्तियाँ जोड़ें

const heading = document.querySelector('h1');if (heading) heading.style.outline = '3px solid currentColor';
5

इसे सहेजें और सक्षम करें

मिलान पृष्ठ पुनः लोड करें. यदि शीर्षक को एक रूपरेखा मिलती है, तो आपकी पहली स्क्रिप्ट काम कर रही है।

शुरुआती नियम: एक स्क्रिप्ट, एक दृश्यमान परिणाम। 500-पंक्ति वाली स्क्रिप्ट की प्रतिलिपि बनाकर शुरुआत न करें जिसे आप समझा नहीं सकते।
स्टार्टर · पाठ 3

स्क्रिप्ट को केवल वहीं चलाएं जहां वह है

समय 5 मिनटलक्ष्य अनुमत और बहिष्कृत URL नियमों का सुरक्षित रूप से उपयोग करें

पृष्ठ मिलान सबसे महत्वपूर्ण User Script कौशलों में से एक है। एक स्क्रिप्ट जिसे एक डैशबोर्ड को अनुकूलित करना चाहिए, उसे आपके द्वारा देखी जाने वाली प्रत्येक वेबसाइट पर चलने के लिए अनुमति की आवश्यकता नहीं है।

1

URLs की अनुमति है

उन पृष्ठों का वर्णन करें जहां स्क्रिप्ट उपयोगी है।

2

URLs को बाहर रखा गया

उस क्षेत्र के अंदर पृष्ठों को ब्लॉक करें जहां स्क्रिप्ट निष्क्रिय रहनी चाहिए।

3

दोनों पक्षों का परीक्षण करें

नियम पर भरोसा करने से पहले एक मेल खाने वाला पृष्ठ और एक गैर-मिलान वाला पृष्ठ खोलें।

चरण 1 पूर्णयदि आपकी स्क्रिप्ट केवल आपके इच्छित पृष्ठ पर चलती है, तो आप कुछ उपयोगी बनाने के लिए तैयार हैं।
बिल्डर · पाठ 4

JavaScript जिसकी आपको वास्तव में सबसे पहले आवश्यकता है

समय 10 मिनटलक्ष्य सरल पृष्ठ तत्वों को पढ़ें और बदलें

उपयोगी User Scripts बनाने के लिए आपको संपूर्ण JavaScript भाषा की आवश्यकता नहीं है। चार विचारों से प्रारंभ करें: एक तत्व ढूंढें, एक मान पढ़ें, कुछ बदलें, और किसी घटना पर प्रतिक्रिया दें।

जरुरतसरल JavaScript
एक तत्व खोजेंdocument.querySelector('.price')
इसका पाठ पढ़ेंelement.textContent
पाठ बदलेंelement.textContent = 'Done'
एक शैली बदलेंelement.style.fontWeight = '700'
एक क्लिक पर प्रतिक्रिया देंbutton.addEventListener('click', handler)

उपयोग करने से पहले हमेशा जांच लें कि कोई तत्व मौजूद है या नहीं। वेबसाइटें बदल जाती हैं, और एक गायब तत्व से पूरी स्क्रिप्ट क्रैश नहीं होनी चाहिए।

बिल्डर · पाठ 5

विभिन्न कार्यों के लिए JavaScript, CSS और HTML का उपयोग करें

समय 8 मिलक्ष्य पृष्ठ परिवर्तन के लिए सबसे सरल उपकरण चुनें
JS

JavaScript

इसका उपयोग तर्क, घटनाओं, मूल्यों को पढ़ने और व्यवहार में बदलाव के लिए करें।

CSS

CSS

दिखावे के लिए इसका उपयोग करें: दृश्य तत्वों को छुपाएं, आकार बदलें, हाइलाइट करें या पुनर्व्यवस्थित करें।

HTML

HTML

इसका उपयोग तब करें जब स्क्रिप्ट को एक छोटे सहायक पैनल, लेबल या नियंत्रण की आवश्यकता हो।

पृष्ठ परिवर्तन छोटे रखें: किसी स्क्रिप्ट के अंदर वेबसाइट इंटरफ़ेस को फिर से बनाने की तुलना में एक हेल्पर बॉक्स को जोड़ना आसान है।
बिल्डर · पाठ 6

अंतर्निहित स्क्रिप्ट प्रबंधक का उपयोग करें

समय 7 मिनटलक्ष्य आत्मविश्वास से स्क्रिप्ट बनाएं, ढूंढें, सक्षम करें और संपादित करें

स्क्रिप्ट मैनेजर वह जगह है जहां पुन: प्रयोज्य स्क्रिप्ट व्यवस्थित रहनी चाहिए। स्पष्ट नामों का उपयोग करें, अक्षम प्रयोगों को कार्यशील स्क्रिप्ट से अलग रखें, और जब आप किसी पृष्ठ को डीबग कर रहे हों तो स्क्रिप्ट को बंद करना आसान बनाएं।

  • एक स्क्रिप्ट बनाएं और संपादित करें.
  • इसे खोजें या स्पष्ट नाम से पहचानें।
  • इसे हटाए बिना इसे सक्षम या अक्षम करें।
  • JavaScript, CSS, HTML और URL नियमों की एक साथ समीक्षा करें।
  • प्रयोगात्मक स्क्रिप्ट को स्पष्ट रूप से परीक्षण के नाम से रखें।
बिल्डर · पाठ 7

इंटरनेट को विश्वसनीय कोड माने बिना स्क्रिप्ट आयात करें

समय 8 मिलक्ष्य किसी फ़ाइल या URL से आयात करें और सक्षम करने से पहले समीक्षा करें

Social Browser मैन्युअल रूप से स्क्रिप्ट बना सकता है या उन्हें फ़ाइल से आयात कर सकता है या URL को निर्देशित कर सकता है। यह सामान्य User Script इंस्टॉलेशन प्रवाह को भी पहचान सकता है। आयात करना सुविधाजनक है, लेकिन सुविधा भरोसे के समान नहीं है।

1

स्रोत जानिए

आपके द्वारा लिखे गए कोड, आपकी टीम के स्वामित्व वाले कोड या ऐसे स्रोत को प्राथमिकता दें जिसे आप सत्यापित कर सकें।

2

मेटाडेटा पढ़ें

नाम, मिलान URLs और निष्पादन व्यवहार की जाँच करें।

3

कोड की समीक्षा करें

अनपेक्षित नेटवर्क अनुरोधों, छिपी हुई फ़ॉर्म कार्रवाइयों, भंडारण पहुंच या व्यापक पृष्ठ मिलान की तलाश करें।

4

सुरक्षित Profile में परीक्षण करें

किसी महत्वपूर्ण ब्राउज़र सत्र में इसका उपयोग करने से पहले इसे नियंत्रित पृष्ठ पर सक्षम करें।

बिल्डर · पाठ 8

मेटाडेटा ब्राउज़र को बताता है कि स्क्रिप्ट कैसे चलनी चाहिए

समय 8 मिलक्ष्य कोड के आसपास की सेटिंग्स को समझें

एक उपयोगी User Script, JavaScript से अधिक है। Social Browser स्क्रिप्ट जानकारी जैसे शीर्षक/नाम, अनुमत और बहिष्कृत URLs, मेनू दृश्यता, विंडो/फ़्रेम स्कोप, स्वचालित निष्पादन और प्रीलोड-स्टेज निष्पादन का उपयोग कर सकता है।

सेटिंगप्रश्न यह उत्तर देता है
नाम/शीर्षकयह स्क्रिप्ट क्या करती है?
URLs की अनुमति हैयह कहाँ चल सकता है?
URLs को बाहर रखा गयाइसे कहाँ नहीं चलना चाहिए?
विंडो/फ़्रेम दायराकिस दस्तावेज़ संदर्भ को इसे प्राप्त करना चाहिए?
स्वचालित निष्पादनक्या इसे मैन्युअल मेनू क्रिया के बिना चलना चाहिए?
प्रीलोड चरणक्या इसे पेज लोडिंग पहले शुरू करने की आवश्यकता है?
मेनू दृश्यताक्या उपयोगकर्ता को इसे स्क्रिप्ट मेनू से ट्रिगर करने में सक्षम होना चाहिए?
प्रतिक्रिया · पाठ 9

पेज को लगातार जांचने के बजाय उस पर प्रतिक्रिया दें

समय 8 मिलक्ष्य सरल इंटरैक्शन के लिए DOM इवेंट्स का उपयोग करें

पेज पहले से ही ईवेंट उत्पन्न करते हैं: क्लिक, इनपुट परिवर्तन, फ़ोकस, नेविगेशन और बहुत कुछ। आपके लिए आवश्यक ईवेंट को सुनना आम तौर पर तेज़ लूप चलाने की तुलना में अधिक साफ़ होता है जो पूरे पृष्ठ की बार-बार जाँच करता है।

const button = document.querySelector('#save');button?.addEventListener('click', () => { console.log('Save button clicked');});
प्रदर्शन नियम: स्थायी उच्च-आवृत्ति टाइमर के स्थान पर किसी घटना या बाध्य पर्यवेक्षक को प्राथमिकता दें।
प्रतिक्रिया · पाठ 10

लोड होने के बाद बदलने वाले पेजों को संभालें

समय 10 मिनटलक्ष्य विलंबित और पुनः प्रस्तुत किए गए तत्वों के साथ कार्य करें

आधुनिक वेबसाइटें अक्सर प्रथम पृष्ठ लोड होने के बाद सामग्री प्रस्तुत करती हैं। यदि आपका लक्ष्य तत्व अभी तक मौजूद नहीं है, तो स्क्रिप्ट इसके लिए प्रतीक्षा कर सकती है या परिवर्तनों के लिए पृष्ठ के एक विशिष्ट भाग का निरीक्षण कर सकती है।

मनमाने ढंग से लंबी देरी से बचें. हर जगह पांच सेकंड प्रतीक्षा करने से समस्या छिप सकती है लेकिन स्क्रिप्ट धीमी और अविश्वसनीय हो जाती है। उस चीज़ की प्रतीक्षा करें जिसकी आपको वास्तव में आवश्यकता है, और एक उचित सीमा के बाद प्रतीक्षा करना बंद कर दें।
प्रतिक्रिया · पाठ 11

छोटी प्राथमिकताएँ सहेजें, रहस्य नहीं

समय 7 मिनटलक्ष्य हानिरहित स्क्रिप्ट सेटिंग्स याद रखें

एक स्क्रिप्ट को हानिरहित प्राथमिकता को याद रखने की आवश्यकता हो सकती है जैसे कि क्या सहायक पैनल ढह गया है या आपने कौन सा डिस्प्ले मोड चुना है। ब्राउज़र संग्रहण मदद कर सकता है, लेकिन संवेदनशील खाता जानकारी, पासवर्ड, 2FA रहस्य और सत्र सामग्री को स्क्रिप्ट के अंदर यूं ही संग्रहीत नहीं किया जाना चाहिए।

अच्छा प्राथमिकता डेटा

  • पैनल खुला/बंद.
  • प्रति पृष्ठ पंक्तियाँ.
  • प्रदर्शन विकल्प.

संवेदनशील बनकर व्यवहार करें

  • पासवर्ड.
  • 2एफए रहस्य.
  • सत्र/कुकी सामग्री.
प्रतिक्रिया · पाठ 12

पहले पृष्ठ डेटा पढ़ें; आवश्यकता पड़ने पर ही अन्य डेटा का अनुरोध करें

समय 8 मिलक्ष्य डेटा पहुंच को सरल और समझने योग्य रखें

यदि जानकारी पहले से ही पृष्ठ में है, तो इसे DOM से पढ़ें। यदि आपकी स्क्रिप्ट को वास्तव में किसी अन्य वेब संसाधन की आवश्यकता है, तो सामान्य ब्राउज़र नेटवर्किंग नियम अभी भी मायने रखते हैं। अपने कोड में अनुरोधों को दृश्यमान रखें और पेज/खाता डेटा को ऐसी जगह भेजने से बचें जिसकी उपयोगकर्ता को उम्मीद नहीं थी।

सरल नियम: यदि स्क्रिप्ट पेज से बाहर डेटा भेजती है, तो समीक्षक को स्पष्ट रूप से दिखना चाहिए कि क्या भेजा जा रहा है और क्यों।
एकीकृत करें · पाठ 13

User Scripts लगातार Profiles के साथ अधिक उपयोगी हो जाता है

समय 8 मिलक्ष्य अलग-अलग ब्राउज़र संदर्भों में स्क्रिप्ट व्यवहार को समझें

एक Social Browser Profile अपना स्वयं का ब्राउज़र संदर्भ रखता है। इसका मतलब है कि आप जहां उपयुक्त हो, उसी स्क्रिप्टिंग विचार का पुन: उपयोग करते हुए खाता सत्र और पृष्ठ स्थिति को अलग रख सकते हैं। विशिष्ट Profile संदर्भ में एक स्क्रिप्ट का परीक्षण करें जहां यह वास्तव में चलेगी।

प्रोफ़ाइल→मिलान पृष्ठ→User Script→छोटे पृष्ठ में सुधार

यह न मानें कि एक स्क्रिप्ट जो एक वेबसाइट स्थिति में काम करती है वह स्वचालित रूप से प्रत्येक Profile में काम करेगी। अलग-अलग सत्र अलग-अलग लेआउट, अनुमतियाँ या सामग्री दिखा सकते हैं।

एकीकृत करें · पाठ 14

फ़्रेम और समय: सही समय पर सही दस्तावेज़ में चलाएँ

समय 10 मिनटलक्ष्य दायरा और निष्पादन समय सोच-समझकर चुनें

एक पृष्ठ में मुख्य दस्तावेज़ के अलावा एक या अधिक फ़्रेम हो सकते हैं। एक स्क्रिप्ट को सामान्य स्वचालित निष्पादन या पहले प्रीलोड चरण की भी आवश्यकता हो सकती है। ये विकल्प अलग-अलग समस्याओं का समाधान करते हैं, इसलिए एक तत्व गायब होने पर उन सभी को न बदलें।

दायरा

मुख्य पृष्ठ या फ़्रेम?

पहचानें कि वास्तव में किस दस्तावेज़ में तत्व शामिल है।

समय

सामान्य या प्रीलोड?

केवल तभी जल्दी शुरू करें जब स्क्रिप्ट को वास्तव में आरंभीकरण को प्रभावित करने की आवश्यकता हो।

गतिशील

बाद में प्रस्तुत किया गया?

यदि पृष्ठ बाद में तत्व बनाता है, तो आँख मूंदकर दायरा बदलने के बजाय गतिशील सामग्री को संभालें।

एकीकृत करें · पाठ 15

बिना अनुमान लगाए User Script को डीबग करें

समय 10 मिनटलक्ष्य पता लगाएं कि समस्या मिलान, समय, कोड या वेबसाइट की है या नहीं
1

पुष्टि करें कि स्क्रिप्ट सक्षम है

उस कोड को डीबग न करें जो वर्तमान में अक्षम है।

2

URL मिलान की पुष्टि करें

अनुमत और बहिष्कृत नियमों की जाँच करें।

3

स्पष्ट कंसोल संदेश जोड़ें

स्क्रिप्ट शुरू होने पर और जिस ऑपरेशन का आप परीक्षण कर रहे हैं उससे पहले लॉग इन करें।

4

लक्ष्य तत्व की जाँच करें

देखें कि क्या यह अभी तक मौजूद है और क्या पेज ने इसे दोबारा प्रस्तुत किया है।

5

स्क्रिप्ट अक्षम करें और तुलना करें

यदि पृष्ठ समस्या अक्षम करने के बाद भी बनी रहती है, तो स्क्रिप्ट इसका कारण नहीं हो सकती है।

चरण 4 पूर्णअब आप Social Browser के अंदर सामान्य User Scripts बना सकते हैं, स्कोप कर सकते हैं और डीबग कर सकते हैं।
उन्नत · पाठ 16

ऐसी स्क्रिप्ट लिखें जिन पर भरोसा करना और बनाए रखना आसान हो

समय 10 मिनटलक्ष्य अनावश्यक पहुंच और छिपे हुए व्यवहार को कम करें
  • केवल उन्हीं पृष्ठों का मिलान करें जिनकी स्क्रिप्ट को आवश्यकता है।
  • गैर-स्पष्ट व्यवहार के लिए स्पष्ट नामों और टिप्पणियों का उपयोग करें।
  • कोड में नेटवर्क गंतव्यों को दृश्यमान रखें।
  • संवेदनशील खाता जानकारी संग्रहीत करने से बचें.
  • जब पर्यवेक्षकों और टाइमर की आवश्यकता न रह जाए तो उन्हें रोक दें।
  • अस्पष्ट सहायक कार्यों के पीछे महत्वपूर्ण दुष्प्रभावों को न छिपाएं।
  • महत्वपूर्ण सत्रों से पहले सुरक्षित Profile में परिवर्तनों का परीक्षण करें।
  • स्क्रिप्ट को अक्षम करने का एक त्वरित तरीका रखें.
उन्नत · पाठ 17

व्यावहारिक User Script रेसिपी

समय 15 मिलक्ष्य छोटे पुन: प्रयोज्य पैटर्न से शुरुआत करें
नुस्खा 1 · महत्वपूर्ण मूल्यों पर प्रकाश डालेंशुरुआती
  1. एक विशिष्ट पृष्ठ का मिलान करें.
  2. मूल्य तत्व खोजें.
  3. एक CSS वर्ग या शैली जोड़ें।
  4. यदि तत्व गायब हैं तो कुछ न करें।
रेसिपी 2 · एक पेज शॉर्टकट जोड़ेंशुरुआती
  1. एक छोटा सहायक बटन बनाएं.
  2. इसे संबंधित क्षेत्र के पास डालें।
  3. इसके क्लिक को सुनें.
  4. एक स्थानीय पृष्ठ क्रिया निष्पादित करें.
नुस्खा 3 · डैशबोर्ड साफ़ करेंइंटरमीडिएट
  1. केवल स्पष्ट रूप से पहचाने गए दृश्य अव्यवस्था को छिपाएँ।
  2. मुख्य पृष्ठ नियंत्रणों को अछूता रखें.
  3. यदि उपयोगी हो तो एक हानिरहित प्रदर्शन प्राथमिकता सहेजें।
पकाने की विधि 4 · बार-बार फॉर्म की सहायता करेंइंटरमीडिएट
  1. फॉर्म का पता लगाएं.
  2. केवल गैर-संवेदनशील दोहराए गए मान भरें जिनकी उपयोगकर्ता अपेक्षा करता है।
  3. जब तक वर्कफ़्लो को स्पष्ट रूप से स्वचालन की आवश्यकता न हो, अंतिम सबमिट निर्णय को उपयोगकर्ता के लिए दृश्यमान छोड़ दें।
पकाने की विधि 5 · गतिशील सामग्री की प्रतीक्षा करेंइंटरमीडिएट
  1. तत्व के लिए एक बार देखो.
  2. यदि गायब है, तो एक संकीर्ण मूल क्षेत्र का निरीक्षण करें।
  3. तत्व प्रकट होने के बाद या समय समाप्त होने के बाद अवलोकन करना बंद कर दें।
उन्नत · पाठ 18

User Script, Automation Studio, या दोनों?

समय 8 मिलक्ष्य कार्य के लिए सबसे सरल उपकरण चुनें
मैं चाहता हूँ...से शुरू करें…
जब भी मैं कोई मेल खाता पृष्ठ खोलूं तो उसका स्वरूप या व्यवहार बदल देंUser Script
एक छोटा पृष्ठ सहायक या शॉर्टकट जोड़ेंUser Script
एक आदेशित बहु-चरणीय ब्राउज़र प्रक्रिया चलाएँAutomation Studio Workflow
Profiles पर या एक शेड्यूल पर समान प्रक्रिया चलाएँAutomation Studio
ऑटोमेशन Workflow चलते समय सहायक पृष्ठ अनुकूलन रखेंUser Script + Automation Studio
बड़े वर्कफ़्लो के अंदर कस्टम पेज लॉजिक की आवश्यकता हैसबसे सरल समर्थित संयोजन का उपयोग करें और जिम्मेदारियों को स्पष्ट रखें
अच्छी वास्तुकला उबाऊ है: User Script में लगातार पेज अनुकूलन और Automation Studio में वर्कफ़्लो ऑर्केस्ट्रेशन रखें। यदि स्टूडियो पहले से ही वर्कफ़्लो सुविधा प्रदान करता है तो एक विशाल स्क्रिप्ट को संपूर्ण स्वचालन प्रणाली में न बदलें।
जीएम API संदर्भ

Social Browser में GM APIs - पहले उपयोग से लेकर उन्नत स्क्रिप्ट तक

इसका प्रयोग कब करें सादा पृष्ठ JavaScript पर्याप्त नहीं हैलक्ष्य ब्राउज़र-स्तरीय स्क्रिप्ट क्षमताओं का सुरक्षित रूप से उपयोग करें

GM APIs एक User Script क्षमताएं देते हैं जो सामान्य पृष्ठ JavaScript में हमेशा नहीं होती हैं, जैसे स्क्रिप्ट-स्कोप्ड स्टोरेज, क्रॉस-ऑरिजिन अनुरोध, नोटिफिकेशन, डाउनलोड, क्लिपबोर्ड एक्सेस, संसाधन और स्क्रिप्ट मेनू कमांड। Social Browser में, एक स्पष्ट @grant स्क्रिप्ट को केवल वही क्षमताएँ प्राप्त होती हैं जो वह माँगती है।

श्रेणी के आधार पर ब्राउज़ करें या API नाम से खोजें।

छोटी शुरुआत करें: प्रत्येक को न जोड़ें @grant पंक्ति "बस मामले में।" केवल उन्हीं APIs के लिए पूछें जिनका स्क्रिप्ट वास्तव में उपयोग करती है। इससे स्क्रिप्ट को समझना, समीक्षा करना और भरोसा करना आसान हो जाता है।

यहां से प्रारंभ करें

How @grant काम करता है

नई स्क्रिप्ट के लिए, आपके द्वारा उपयोग किए जाने वाले प्रत्येक विशेषाधिकार प्राप्त API की घोषणा करें। Social Browser एक अलग User Script दुनिया में स्पष्ट अनुदान के साथ स्क्रिप्ट चलाता है और केवल अनुरोधित क्षमताओं को पूरा करता है। के साथ एक स्क्रिप्ट @grant none जीएम क्षमताओं के बिना चलता है।

JavaScript · न्यूनतम स्वीकृत स्क्रिप्ट
// ==UserScript==// @name Remember display mode// @namespace https://example.com/my-scripts// @match https://example.com/*// @grant GM_getValue// @grant GM_setValue// ==/UserScript== const mode = GM_getValue('displayMode', 'compact');console.log('Saved mode:', mode); GM_setValue('displayMode', 'comfortable');

क्लासिक GM_* या आधुनिक GM.*?

Social Browser परिचित क्लासिक नामों और उनके आधुनिक नामों का समर्थन करता है GM.* मुख्य GM capability set के लिए फ़ॉर्म। आधुनिक फ़ॉर्म Promise-अनुकूल है, इसलिए इसका उपयोग करें await. प्रति स्क्रिप्ट एक शैली चुनें और सुसंगत रहें।

क्लासिक
JavaScript
const theme = GM_getValue('theme', 'dark');GM_setValue('theme', 'light');
आधुनिक
JavaScript
const theme = await GM.getValue('theme', 'dark');await GM.setValue('theme', 'light');

GM_info / GM.info

जब आपको वर्तमान स्क्रिप्ट, संस्करण, अनुदान, मिलान या Social Browser रनटाइम जानकारी का निरीक्षण करने की आवश्यकता हो तो स्क्रिप्ट जानकारी का उपयोग करें। जब तक आपको वास्तव में संगतता तर्क की आवश्यकता न हो, संस्करण स्ट्रिंग्स के आसपास हार्ड-कोड व्यवहार न करें।

JavaScript · स्क्रिप्ट मेटाडेटा का निरीक्षण करें
// @grant GM_info console.log('Script:', GM_info.script.name);console.log('Version:', GM_info.version);console.log('Handler:', GM_info.scriptHandler);console.log('Grants:', GM_info.scriptGrants);console.log('Matches:', GM_info.scriptMatches);

भंडारण

छोटे स्क्रिप्ट डेटा याद रखें

जीएम स्टोरेज को सामान्य पेज स्टोरेज के बजाय User Script तक सीमित कर दिया गया है। यह हानिरहित प्राथमिकताओं, काउंटरों और स्क्रिप्ट स्थिति के लिए आदर्श है। इसे पासवर्ड, 2एफए रहस्य, कुकीज़ या सत्र सामग्री के लिए आकस्मिक वॉल्ट के रूप में उपयोग न करें।

APIयह क्या करता हैविशिष्ट परिणाम
GM_getValue(key, defaultValue)एक सहेजा गया मान पढ़ें.सहेजा गया मान या आपका डिफ़ॉल्ट.
GM_setValue(key, value)एक मान सहेजें.Updates script-scoped storage.
GM_deleteValue(key)एक मान हटाएँ.कुंजी गायब हो जाती है.
GM_listValues()सहेजी गई कुंजियों की सूची बनाएं.प्रमुख नामों की एक श्रृंखला.
GM_getValues(...)कई मूल्यों को एक साथ पढ़ें.मूल्यों की एक वस्तु.
GM_setValues(object)कई मान एक साथ सहेजें.Updates each supplied key.
GM_deleteValues(keys)अनेक कुंजियाँ हटाएँ.सूचीबद्ध मान हटा देता है.
JavaScript · उपयोगकर्ता प्राथमिकताएँ सहेजें
// @grant GM_getValue// @grant GM_setValue// @grant GM_deleteValue const settings = GM_getValue('settings', { compact: true, rowsPerPage: 25}); settings.rowsPerPage = 50;GM_setValue('settings', settings); // Reset later if the user asks for defaults.// GM_deleteValue('settings');

मूल्य परिवर्तन देखें

GM_addValueChangeListener तब उपयोगी होता है जब एक ही स्क्रिप्ट एक से अधिक फ्रेम या टैब में खुली हो। कॉलबैक प्राप्त होता है (name, oldValue, newValue, remote). Social Browser में, मूल्य-परिवर्तन ईवेंट एक ही Profile/सत्र में फ़्रेम/टैब पर सिंक्रनाइज़ हो सकते हैं।

JavaScript · भंडारण श्रोता
// @grant GM_addValueChangeListener// @grant GM_removeValueChangeListener const listenerId = GM_addValueChangeListener( 'displayMode', (name, oldValue, newValue, remote) => { console.log({ name, oldValue, newValue, remote }); }); // Remove it when you no longer need it.// GM_removeValueChangeListener(listenerId);

पेज सहायक

शैलियाँ या छोटे तत्व जोड़ें

GM_addStyle(css) / GM.addStyle(css)

इसका उपयोग तब करें जब पृष्ठ अनुकूलन अधिकतर दृश्यमान हो। यह कई व्यक्तियों को स्थापित करने की तुलना में अधिक स्वच्छ है element.style गुण.

JavaScript · CSS इंजेक्ट करें
// @grant GM_addStyle GM_addStyle(` .important-total { font-weight: 700; outline: 2px solid currentColor; padding: 4px 8px; }`);

GM_addElement(...) / GM.addElement(...)

एक छोटा DOM तत्व बनाएं और उसे सुरक्षित रूप से जोड़ें। आप पहले मूल तत्व को पास कर सकते हैं, या पेज बॉडी का उपयोग करने के लिए इसे छोड़ सकते हैं।

JavaScript · एक सहायक बटन जोड़ें
// @grant GM_addElement const panel = document.querySelector('#account-panel');if (panel) { GM_addElement(panel, 'button', { type: 'button', textContent: 'Copy account ID', className: 'my-copy-button', onclick() { const id = panel.querySelector('.account-id')?.textContent?.trim(); if (id) navigator.clipboard.writeText(id); } });}

नेटवर्क

के साथ विशेषाधिकार प्राप्त अनुरोध करें GM_xmlhttpRequest

सामान्य पृष्ठ fetch() पृष्ठ के सामान्य ब्राउज़र/सीओआरएस नियमों द्वारा नियंत्रित किया जाता है। Social Browser का GM अनुरोध API एक समर्पित ब्राउज़र-प्रक्रिया अनुरोध चैनल का उपयोग करता है। अनुरोध भेजने से पहले, उसके गंतव्य को स्क्रिप्ट के विरुद्ध जांचा जाता है @connect नियम.

नेटवर्क पहुंच समीक्षा की पात्र है. गंतव्यों को संकीर्ण और दृश्यमान रखें। खाता/पेज डेटा कभी भी ऐसी सेवा पर न भेजें जिसकी उपयोगकर्ता को अपेक्षा न हो।
JavaScript · JSON अनुरोध
// ==UserScript==// @match https://app.example.com/*// @connect api.example.com// @grant GM_xmlhttpRequest// ==/UserScript== const response = await GM_xmlhttpRequest({ method: 'GET', url: 'https://api.example.com/status', responseType: 'json', timeout: 10000, headers: { Accept: 'application/json' }}); console.log(response.status, response.response);

कॉलबैक और निरस्त करें

अनुरोध API सामान्य अनुरोध कॉलबैक का समर्थन करता है और एक हैंडल लौटाता है जिसे निरस्त किया जा सकता है। तब भी टाइमआउट का उपयोग करें जब आप गर्भपात का भी समर्थन करते हों।

JavaScript · कॉलबैक + निरस्त करें
// @connect api.example.com// @grant GM_xmlhttpRequest const request = GM_xmlhttpRequest({ url: 'https://api.example.com/slow-report', timeout: 15000, onload(response) { console.log('Loaded:', response.status); }, onerror(error) { console.error('Request failed:', error); }, ontimeout() { console.warn('Request timed out'); }, onabort() { console.log('Request aborted'); }}); // Cancel only if your script no longer needs the result.// request.abort();

आधुनिक रूप: GM.xmlHttpRequest(...) and GM.xmlhttpRequest(...) समान अनुरोध क्षमता पर मैप करें।

संसाधन

पुन: प्रयोज्य पाठ, CSS या अन्य संपत्तियों को बंडल करें

के साथ संपत्ति की घोषणा करें @resource, फिर इसे नाम से पढ़ें। GM_getResourceText returns decoded text. GM_getResourceURL ऐसा data URL लौटाता है जो response MIME type को सुरक्षित रखता है।

JavaScript · @संसाधन
// ==UserScript==// @resource helperCss https://example.com/assets/helper.css// @grant GM_getResourceText// @grant GM_getResourceURL// ==/UserScript== const css = await GM_getResourceText('helperCss');console.log(css); const dataUrl = await GM_getResourceURL('helperCss');console.log(dataUrl);

यदि संसाधन नाम मौजूद नहीं है, तो API वापस आ जाता है undefined. संसाधन नाम संक्षिप्त और वर्णनात्मक रखें।

ब्राउज़र सहायक

टैब, सूचनाएं और क्लिपबोर्ड

GM_openInTab(url, options)

Social Browser टैब में एक URL खोलें। उपयोग करें active: false जब नया टैब बिना फोकस किए खुलना चाहिए।

JavaScript · एक पृष्ठभूमि टैब खोलें
// @grant GM_openInTab GM_openInTab('https://example.com/report', { active: false});

प्रति-टैब स्क्रिप्ट स्थिति: GM_getTab, GM_saveTab, GM_getTabs

ये APIs टैब से जुड़ी छोटी User Script स्थिति को संग्रहीत करते हैं। वे तब उपयोगी होते हैं जब किसी स्क्रिप्ट को यह याद रखने की आवश्यकता होती है कि कौन सा चरण या दृश्य वैश्विक स्क्रिप्ट प्राथमिकताओं के साथ मिश्रण किए बिना किसी विशेष टैब से संबंधित है।

JavaScript · इस टैब की स्थिति याद रखें
// @grant GM_getTab// @grant GM_saveTab// @grant GM_getTabs const tabState = await GM_getTab();await GM_saveTab({ ...tabState, lastPanel: 'orders'}); const allScriptTabs = await GM_getTabs();console.log(allScriptTabs);

GM_notification

उपयोगकर्ता को वास्तव में जिस चीज़ पर ध्यान देना चाहिए उसके लिए एक ब्राउज़र अधिसूचना दिखाएं। नियमित स्क्रिप्ट गतिविधि के लिए अधिसूचना स्पैम से बचें।

JavaScript · अधिसूचना
// @grant GM_notification await GM_notification({ title: 'Report ready', text: 'The page data is ready to review.'});

GM_setClipboard(data, type)

टेक्स्ट को क्लिपबोर्ड पर कॉपी करें (या अनुरोध किए जाने पर HTML)। जब संभव हो तो स्पष्ट उपयोगकर्ता कार्रवाई के बाद इसका उपयोग करें, ताकि उपयोगकर्ता समझ सके कि उनका क्लिपबोर्ड क्यों बदला गया।

JavaScript · पृष्ठ मान की प्रतिलिपि बनाएँ
// @grant GM_setClipboard const orderId = document.querySelector('.order-id')?.textContent?.trim();if (orderId) { GM_setClipboard(orderId, 'text');}

मेनू और डाउनलोड

जानबूझकर उपयोगकर्ता क्रियाएं जोड़ें

GM_registerMenuCommand / GM_unregisterMenuCommand

User Script मेनू में एक कमांड पंजीकृत करें। यह कार्यों के लिए एक अच्छा पैटर्न है जो केवल तभी होना चाहिए जब उपयोगकर्ता स्पष्ट रूप से उनके लिए पूछे।

JavaScript · मेनू कमांड
// @grant GM_registerMenuCommand// @grant GM_unregisterMenuCommand const commandId = GM_registerMenuCommand( 'Highlight overdue rows', () => { document.querySelectorAll('.row.overdue').forEach((row) => { row.style.fontWeight = '700'; }); }); // Remove the menu item later if the script no longer needs it.// GM_unregisterMenuCommand(commandId);

GM_download

Social Browser के माध्यम से डाउनलोड प्रारंभ करें। फ़ाइल को एक स्पष्ट नाम दें और इसका उपयोग केवल तभी करें जब डाउनलोड करना स्क्रिप्ट के दृश्य उद्देश्य का हिस्सा हो।

JavaScript · एक फ़ाइल डाउनलोड करें
// @grant GM_download await GM_download({ url: 'https://example.com/reports/today.csv', name: 'today-report.csv'});

उन्नत

unsafeWindow: आवश्यक होने पर ही पेज ग्लोबल्स पर ब्रिज करें

स्पष्ट-अनुदान User Scripts आम तौर पर एक अलग दुनिया में चलता है। unsafeWindow पेज की मुख्य दुनिया में ग्लोबल्स के लिए एक ऑप्ट-इन ब्रिज है। इसका उपयोग केवल तभी करें जब वेबसाइट एक पेज वेरिएबल या फ़ंक्शन को उजागर करती है जिस तक सामान्य पृथक स्क्रिप्ट पहुंच नहीं हो सकती है।

संकीर्ण रूप से उपयोग करें: पेज ग्लोबल्स वेबसाइट से संबंधित हैं और बिना किसी सूचना के बदल सकते हैं। जब वे समस्या का समाधान करें तो सामान्य DOM APIs को प्राथमिकता दें।
JavaScript · वैश्विक पेज पढ़ें
// @grant unsafeWindow const appVersion = unsafeWindow.appConfig?.version;if (appVersion) { console.log('Page app version:', appVersion);}

निष्पादन-विश्व नियम

मेटाडेटाSocial Browser में व्यवहार
@grant noneबिना किसी जीएम क्षमता इंजेक्शन के सटीक लक्ष्य फ्रेम की मुख्य दुनिया में चलता है।
एक या अधिक स्पष्ट @grantsएक नियतात्मक पृथक User Script दुनिया में चलता है; केवल अनुरोधित क्षमताओं को पूरा किया जाता है।
No @grant मेटाडेटालीगेसी MAIN-विश्व संगतता मोड मौजूदा Social Browser स्क्रिप्ट के लिए बरकरार रखा गया है।

पूरा उदाहरण

एक छोटी स्क्रिप्ट जो स्टोरेज, स्टाइल, मेनू कमांड और क्लिपबोर्ड को जोड़ती है

यह उदाहरण जानबूझकर छोटा रहता है. यह याद रखता है कि हाइलाइटिंग सक्षम है या नहीं, एक शैली नियम जोड़ता है, उपयोगकर्ता को इसे User Script मेनू से टॉगल करने देता है, और केवल पूछे जाने पर दृश्यमान पृष्ठ मान की प्रतिलिपि बनाता है।

JavaScript · पूर्ण User Script
// ==UserScript==// @name Helpful order-page tools// @namespace https://example.com/my-scripts// @version 1.0.0// @match https://example.com/orders/*// @grant GM_getValue// @grant GM_setValue// @grant GM_addStyle// @grant GM_registerMenuCommand// @grant GM_setClipboard// ==/UserScript== (() => { 'use strict';  GM_addStyle(` .sb-order-highlight { outline: 2px solid currentColor; font-weight: 700; } `);  const applyHighlight = () => { const enabled = GM_getValue('highlightEnabled', true); document.querySelectorAll('.order-total').forEach((element) => { element.classList.toggle('sb-order-highlight', enabled); }); };  GM_registerMenuCommand('Toggle order highlighting', () => { const current = GM_getValue('highlightEnabled', true); GM_setValue('highlightEnabled', !current); applyHighlight(); });  GM_registerMenuCommand('Copy current order ID', () => { const orderId = document.querySelector('.order-id')?.textContent?.trim(); if (orderId) { GM_setClipboard(orderId, 'text'); } });  applyHighlight();})();

अनुकूलता नोट

यह मार्गदर्शिका जिसे समर्थित जीएम अनुबंध मानती है

यह मार्गदर्शिका उन क्षमताओं पर केंद्रित है जो Social Browser की वर्तमान स्पष्टता का हिस्सा हैं @grant ब्रिज: भंडारण, मूल्य-परिवर्तन श्रोता, शैलियाँ/तत्व, विशेषाधिकार प्राप्त अनुरोध, संसाधन, टैब, सूचनाएं, क्लिपबोर्ड, डाउनलोड, मेनू कमांड, GM_info and unsafeWindow.

कुछ विरासत/आंतरिक नाम पिछड़ी संगतता के लिए मौजूद हो सकते हैं, लेकिन उन्हें जानबूझकर यहां अनुशंसित सार्वजनिक APIs के रूप में प्रस्तुत नहीं किया जाता है जब तक कि वे स्पष्ट क्षमता अनुबंध का हिस्सा न हों। यह आकस्मिक कार्यान्वयन विवरण सिखाने के बजाय नई स्क्रिप्ट को स्थिर पथ पर रखता है।

User Scripts त्वरित संदर्भ खोलेंजरूरत पड़ने पर खोलें

Social Browser में स्क्रिप्ट क्षमताएं

Capabilityप्रयोजन
नाम/शीर्षकस्क्रिप्ट को स्पष्ट रूप से पहचानें.
URLs की अनुमति हैचुनें कि यह कहाँ चल सकता है।
URLs को बाहर रखा गयाविशिष्ट पृष्ठों को निष्पादन से रोकें।
JavaScriptतर्क और पृष्ठ व्यवहार जोड़ें.
CSSपृष्ठ का स्वरूप बदलें.
HTMLछोटे पृष्ठ इंटरफ़ेस तत्व जोड़ें.
मेनू दृश्यतानियंत्रित करें कि क्या यह उपयोगकर्ता-ट्रिगर स्क्रिप्ट क्रिया के रूप में प्रकट होता है।
विंडो/फ़्रेम दायराचुनें कि कौन सा दस्तावेज़ संदर्भ स्क्रिप्ट प्राप्त करता है।
स्वचालित निष्पादनमेल खाने वाले पृष्ठों पर स्वचालित रूप से चलाएँ.
प्रीलोड-स्टेज निष्पादनजब स्क्रिप्ट को इसकी आवश्यकता हो तो पहले शुरू करें।
फ़ाइल / URL से आयात करेंमौजूदा स्क्रिप्ट्स को मैनेजर में लाएँ।
सामान्य User Script मेटाडेटाजहां समर्थित हो वहां परिचित मेटाडेटा सम्मेलनों का उपयोग करें।

शब्दावली

User Script
JavaScript, वैकल्पिक रूप से CSS/HTML के साथ, जो चयनित ब्राउज़र पृष्ठों में चलता है।
मिलान नियम
एक नियम जो URLs को स्क्रिप्ट प्राप्त करने को सीमित करता है।
DOM
ब्राउज़र का पृष्ठ का ऑब्जेक्ट प्रतिनिधित्व जिसे JavaScript पढ़ और बदल सकता है।
घटना
एक पृष्ठ संकेत जैसे कि एक क्लिक या इनपुट परिवर्तन।
फ़्रेम
एक दस्तावेज़ दूसरे पृष्ठ के अंदर एम्बेडेड है।
प्रीलोड
एक पूर्व निष्पादन चरण का उपयोग तब किया जाता है जब सामान्य पृष्ठ समय किसी विशिष्ट आवश्यकता के लिए बहुत देर हो चुकी होती है।
प्रोफ़ाइल
अपनी स्वयं की ब्राउज़र स्थिति के साथ एक सतत पृथक Social Browser वातावरण।

शुरुआती चेकलिस्ट

  • मैं समझा सकता हूँ कि User Script क्या है।
  • मैंने एक परीक्षण स्क्रिप्ट बनाई और अक्षम कर दी।
  • मैं किसी स्क्रिप्ट को सही URLs तक सीमित कर सकता हूं।
  • मैं एक साधारण पृष्ठ तत्व ढूंढ और बदल सकता हूं।
  • मुझे पता है कि CSS कब पर्याप्त है।
  • मैं इसे सक्षम करने से पहले आयातित कोड की समीक्षा करता हूं।
  • मैं किसी स्क्रिप्ट को डीबग करने के लिए कंसोल का उपयोग कर सकता हूं।

उन्नत चेकलिस्ट

  • मैं मैच के नियमों को संकीर्ण रखता हूं।
  • मैं गतिशील पृष्ठों और बंधे हुए पर्यवेक्षकों को समझता हूं।
  • मैं भंडारण और नेटवर्क पहुंच को जानबूझकर मानता हूं।
  • मैं किसी कारण से फ़्रेम स्कोप और टाइमिंग चुनता हूं।
  • मैं इच्छित Profile संदर्भ में स्क्रिप्ट का परीक्षण करता हूं।
  • मुझे पता है कि Automation Studio कब एक बेहतर उपकरण है।
सामान्य User Script प्रश्न खोलेंजरूरत पड़ने पर खोलें
क्या मुझे JavaScript डेवलपर बनने की आवश्यकता है?

नहीं, छोटी उपयोगी स्क्रिप्टों को अक्सर केवल बुनियादी DOM चयन, घटनाओं और सरल स्थितियों की आवश्यकता होती है। अधिक जानें JavaScript जब वास्तविक उपयोग के मामले में इसकी आवश्यकता होती है।

क्या User Script में CSS और HTML शामिल हो सकते हैं?

हाँ. Social Browser के User Script सिस्टम में JavaScript और स्क्रिप्ट के आधार पर CSS और HTML अनुकूलन शामिल हो सकते हैं।

क्या मैं मौजूदा User Scripts आयात कर सकता हूँ?

स्क्रिप्ट को मैन्युअल रूप से बनाया जा सकता है या फ़ाइल से आयात किया जा सकता है या सीधे URL किया जा सकता है, और जहां लागू हो वहां सामान्य User Script इंस्टॉलेशन/मेटाडेटा कन्वेंशन समर्थित हैं। इसे सक्षम करने से पहले आयातित कोड की समीक्षा करें।

क्या User Scripts Automation Studio के समान है?

नहीं, User Scripts ऐसे कोड के लिए सर्वोत्तम हैं जो मेल खाते पृष्ठों के साथ रहते हैं। Automation Studio को ऑर्डर किए गए वर्कफ़्लो, Profile लक्ष्यीकरण, निष्पादन नीति, शेड्यूलिंग, सत्यापन और पुनर्प्राप्ति के लिए डिज़ाइन किया गया है। वे एक दूसरे के पूरक हो सकते हैं.

क्या स्क्रिप्ट अलग-अलग Profiles में चल सकती हैं?

User Scripts ब्राउज़र पेज संदर्भों में काम करता है। इच्छित Social Browser Profile में उनका परीक्षण और प्रबंधन करें क्योंकि प्रोफाइल में अलग-अलग सत्र, सामग्री और ब्राउज़र स्थिति हो सकती है।

इंटरनेट से स्क्रिप्ट इंस्टॉल करने का सबसे सुरक्षित तरीका क्या है?

स्रोत को जानें, मेटाडेटा पढ़ें, कोड का निरीक्षण करें, URL स्कोप और नेटवर्क/स्टोरेज व्यवहार की जांच करें, फिर महत्वपूर्ण उपयोग से पहले नियंत्रित Profile में परीक्षण करें।

इसे आज़माने के लिए तैयार हैं?

एक छोटी सी स्क्रिप्ट से एक पेज को बेहतर बनाएं।

Social Browser डाउनलोड करें, एक परीक्षण Profile बनाएं, एक छोटा User Script जोड़ें, और इसे इतना सरल रखें कि आप हर पंक्ति को समझा सकें।