
समस्या सभी (यदि संभव हो तो) लोकप्रिय ब्राउज़रों के लिए एक सरल एक्सटेंशन लिखने की पैदा हुई। विस्तार की गतिविधि दस्तावेज़ के शरीर में जावास्क्रिप्ट को इंजेक्ट करना है।
डॉक्टर ने जावास्क्रिप्ट इंजेक्शन निर्धारित किए
यह सरल प्रतीत होगा, हम ब्राउज़र लाइन में कोड निष्पादित करते हैं:
लेकिन क्या होगा अगर आपकी स्क्रिप्ट किसी अन्य साइट के सभी पृष्ठों को संसाधित करे। उपयोगकर्ता को नए पृष्ठ पर प्रत्येक संक्रमण के बाद इंजेक्शन कोड के साथ टैब पर लगातार क्लिक करने के लिए मजबूर न करें। एक सरल समाधान के लिए भोली खोज असफल रही:
javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
- यह पृष्ठ के सभी लिंक को इंटरसेप्ट कर रहा था और अपने स्वयं के "जावास्क्रिप्ट:" कोड को जोड़ रहा था, बेशक कोड को एक खुले पृष्ठ के हिस्से के रूप में निष्पादित किया गया था और फिर एक नए "स्वच्छ" पृष्ठ के माध्यम से (स्थान.हृद) में ले जाया गया था।
- सेटटाइमआउट वाला विकल्प आम तौर पर बकवास के क्रम में था ... एक नया पृष्ठ लोड करने की शुरुआत के बाद निष्पादन बंद हो गया।
- आईई 7+ (6-के लिए सिर्फ स्कोर करने का फैसला किया, उपयोगकर्ताओं के एक छोटे से दर्शकों के लिए बहुत अधिक लागत - माफ कर दो)
- फ़ायरफ़ॉक्स 1.5+
- क्रोम 4+
- ओपेरा 9+ (परिणामस्वरूप, यह पता चला कि एक्सटेंशन केवल ओपेरा 11 के लिए लिखा जा सकता है)
- सफारी 3+
Google क्रोम
क्रोम के लिए एक घंटे में विस्तार से लिखा गया था - आधिकारिक साइट पर बहुत सारे दस्तावेज, बहुत सारे उदाहरण। सामान्य तौर पर, डेवलपर के लिए एक स्वर्ग।
उदाहरण और गाइड
बैकग्राउंड से अंश। html
- समारोह onRequest ( tabId , changeInfo , tab ) {
- अगर ( changeInfo। स्थिति == 'पूर्ण' ) {
- क्रोम। टैब । एग्जीक्यूटस्क्रिप्ट ( टैबआईड , { कोड : "जावास्क्रिप्ट के बिना कोड:" } ) ;
- } ;
- } ;
- क्रोम। टैब । चालू है । addListener ( onRequest ) ;
सब कुछ सरल और स्वादिष्ट निकला। सीधे दस्तावेज़ निकाय में सम्मिलित करें