2011-10-16 10 views
30

userscript एक Google बैकएंड का उपयोग करता है एक ग्राहक अनुप्रयोग डिबगिंग करते समय, मैंने कार्यों में से कुछ डिबगिंग संस्करणों जोड़ा गया है और Chrome डेवलपर टूल स्क्रिप्ट संपादक का उपयोग कर उन्हें डाला है।Greasemonkey का उपयोग कर एक स्थानीय डिबगिंग प्रति के साथ दूरदराज के जावास्क्रिप्ट फ़ाइल बदलें या

हालांकि इस दृष्टिकोण के साथ कई सीमाएं हैं, पहला यह है कि संपादक हमेशा डी-मिनीफाइड फाइलों के साथ काम नहीं करता प्रतीत होता है, और जब जेएस फ़ाइल 35K लाइन लंबी होती है, तो यह एक समस्या है।

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

मैं रिमोट javascript.js फ़ाइल को अपनी स्थानीय प्रतिलिपि के साथ प्रतिस्थापित करना चाहता हूं, संभावित रूप से फ़ाइल नाम पर कुछ रेगेक्स का उपयोग करना, या जो भी रणनीति उपयुक्त थी, मुझे फ़ायरफ़ॉक्स या क्रोम का उपयोग करने में खुशी होगी, अगर कोई आसान था अन्य।

+0

डुप्लिकेट [Greasemonkey के साथ एक पृष्ठ के jQuery संस्करण को बदलें] (http://stackoverflow.com/questions/7700728/replace-jquery-version-of-a-page-with-greasemonkey) - जो दिखाता है कि कैसे स्थानीय संस्करण के साथ दूरस्थ जेएस को प्रतिस्थापित करें। –

+1

@ ब्रॉक एडम्स कि समाधान विंडोज़ विशिष्ट है और यूनिक्स-वाई ओएस पर काम नहीं करेगा। पता नहीं है कि यह ओपी के लिए महत्वपूर्ण है, लेकिन अगर कोई सार्वभौमिक समाधान था तो यह अच्छा होगा। –

+0

@ डैनियल मेंडेल, वहां 2 समाधान हैं। एक शायद ओपी के लिए बाधाओं के रूप में काम करेगा-क्या वह खिड़कियों पर है। दूसरा समाधान विंडोज तक ही सीमित नहीं है, बल्कि यह भी उन सीमाओं को समझाता है जो उपयोगकर्तास्क्रिप्ट, या ग्रीसमोनी चेहरे के साथ ऐसा करने का प्रयास कर रहे हैं (हालांकि क्रोम पर पोर्ट करते समय उत्तर बेहतर काम कर सकता है - कुछ ऐसा जो मैंने परीक्षण नहीं किया था क्योंकि मैं केवल क्रोम का उपयोग करता हूं किफ़ायत से)। –

उत्तर

19

तो बुनियादी तौर पर, के रूप में @BrockAdams पहचान, वहाँ आवश्यकताओं के आधार पर समस्या के इन प्रकार के समाधान के एक जोड़े हैं, और वे या तो 1 2 तरीकों में से पालन करें।

  1. ब्राउज़र एपीआई switcharoo।
  2. प्रॉक्सी आधारित अवरोध befiddlement।

ब्राउज़र एपीआई स्विचारू। फ़ायरफ़ॉक्स और क्रोम समर्थन ब्राउज़र एक्सटेंशन दोनों फ़ायरफ़ॉक्स और क्रोम के मामले में क्रमशः "ऑनबॉर्लोड" या "ऑन बायफ्रॉरेस्ट" के लिए ईवेंट हैंडलर पंजीकृत करने के लिए प्लेटफ़ॉर्म विशिष्ट API का लाभ उठा सकते हैं। क्रोम एपीआई वर्तमान में प्रयोगात्मक हैं, इसलिए इन उपकरणों को फ़ायरफ़ॉक्स के तहत बेहतर विकसित होने की संभावना है। 2 उपकरण है कि निश्चित रूप से क्या आवश्यक है की तरह कुछ करना AdBlock plus और Jsdeminifier जो दोनों के स्रोत कोड उपलब्ध हैं।

इन 2 फ़ायरफ़ॉक्स क्षुधा के लिए प्रमुख मुद्दा यह है कि वे वेब अनुरोध से पहले ब्राउज़र उस पर अपने हाथ हो जाता है और HTTP/HTTPS encrpytion चरण के दूसरे पक्ष पर काम करते हैं, इसलिए decrypted प्रतिक्रिया देख सकते हैं रोकना है हालांकि the other post में पहचाना गया है कि वे पूरी चीज नहीं करते हैं, हालांकि जेएसडीमिनेफायर बहुत उपयोगी था, मुझे बिल्कुल वही करने के लिए फ़ायरफ़ॉक्स प्लगइन नहीं मिला, लेकिन मैं उन पिछले प्लगइन से देख सकता हूं, यह है फ़ायरफ़ॉक्स और क्रोम दोनों के साथ संभव है। हालांकि वे वास्तव में आवश्यकतानुसार चाल नहीं करते हैं।

प्रॉक्सी आधारित अवरोधन befiddlement यह निश्चित रूप से एक सादे HTTP वातावरण में बेहतर विकल्प है, इस तरह के pivoxy, fiddler2 के रूप में प्रॉक्सी के पूरे गुच्छा रहे हैं, चार्ल्स वेब HTTP प्रॉक्सी, और शायद कुछ है कि मैं के दौरान दिखने वाले विशेष रूप से स्नॉर्ट जैसे कि कुछ प्रकार के फ़िल्टरिंग का समर्थन करते हैं।

फ़ायरफ़ॉक्स पर मेरे लिए सबसे आसान समाधान फॉक्सप्रोक्सी और निजीक्सी था, और पृष्ठ के यूआरएल का पता लगाने के लिए उपयोगकर्ता.एक्शन और उपयोगकर्ता.फिल्टर को कॉन्फ़िगर करें, और उसके बाद एक फ़िल्टर लागू करने के लिए जो मूल स्रोत टैग को बदल दिया गया है, मेरे लिए एक का मालिकाना है।

https मामले। प्रॉक्सी बनाम प्लगइन जब अनुरोध https है प्रॉक्सी अनुरोध यूआरएल या प्रतिक्रिया निकाय नहीं देख सकता है, तो यह कूल स्वैपिंग सामग्री नहीं कर सकता है। हालांकि उन लोगों के लिए एक विकल्प उपलब्ध है जो अपने ब्राउज़र से गड़बड़ करना पसंद करते हैं। और वह मैन-इन-द-बीच एसएसएल प्रॉक्सी है।Charles Web HTTP proxy इस समस्या का मुख्य समाधान प्रतीत होता है। मूल रूप से यह जिस तरह से काम करता है वह यह है कि जब आपका ब्राउज़र रिमोट HTTPS सर्वर से अनुरोध करता है, तो एसएसएल प्रॉक्सी अनुरोध को रोकती है और सर्वर के आईपी पते से फ्लाई पर एक सर्वर प्रमाणपत्र उत्पन्न करता है, जो यह अपने रूट सीए के साथ संकेत करता है, और ब्राउज़र पर वापस भेजता है। ब्राउज़र स्पष्ट रूप से स्वयं हस्ताक्षरित प्रमाण के बारे में शिकायत करता है, लेकिन यहां आप ब्राउज़र में एसएसएल प्रॉक्सी रूट सीए प्रमाण स्थापित करना चुन सकते हैं, ब्राउजर को परेशान कर सकते हैं और एसएसएल प्रॉक्सी को मध्य में आदमी को अनुमति दे सकते हैं और कच्चे प्रतिक्रिया पर प्रतिस्थापन और फ़िल्टर कर सकते हैं तन।

वैकल्पिक अपने स्वयं के क्रोम एक्सटेंशन मैंने अपने स्वयं के क्रोम एक्सटेंशन को रोल करने का फैसला किया, जिसे मैं उपलब्ध कराने की योजना बना रहा हूं। वर्तमान में यह मेरी अपनी आवश्यकताओं के लिए बहुत कठिन है, लेकिन यह https अनुरोधों के लिए भी बहुत अच्छा काम करता है और दूसरा लाभ यह है कि ब्राउज़र डेवलपर समाधान ब्राउज़र डेवलपर टूल के साथ अधिक कड़ाई से एकीकृत किया जा सकता है।

+0

मैं भी इस तरह के एक समाधान (एफएफ या क्रोम विस्तार) विकसित करने में वास्तव में रुचि रखते हैं। क्या आपको लगता है कि आपकी प्लगइन देखना या दृष्टिकोण समझना संभव होगा? –

+0

एफएफ विस्तार चार्ल्स डाउनलोड पेज के नीचे http://www.charlesproxy.com/download/ –

10

एक और उपकरण Requestly है - क्रोम एक्सटेंशन जिसका उपयोग URL को फिर से लिखने के लिए किया जा सकता है और स्थानीय होस्टेड लाइब्रेरीज़ के साथ अपने उत्पादन पुस्तकालयों को बहुत आसान सेटअप और बहुत अनुकूल इंटरफ़ेस के साथ प्रतिस्थापित किया जा सकता है।

enter image description here

पुनश्च::

इस पर एक नज़र डालें मैं जानता हूँ कि यह उत्तर दिया गया लेकिन मैं अभी भी जवाब इस पर विचार भविष्य पाठकों के लिए बहुत फायदेमंद होगा।

+1

ग्रेट टूल के नीचे पाया जा सकता है। धन्यवाद! – advncd

+0

अनुरोध रूप से फ़ायरफ़ॉक्स के लिए भी उपलब्ध है। यहां से डाउनलोड करें: http://www.requestly.in/ – sachinjain024