2009-05-21 16 views
36

इस प्रश्न को before से भी पूछा गया है, लेकिन मैं Google क्रोम में जावास्क्रिप्ट को डीबग नहीं कर सकता।Google क्रोम जावास्क्रिप्ट डीबगर और सामग्री स्क्रिप्ट

अगर मैं पृष्ठ> डेवलपर "JavaScript डीबग करें" (Ctrl +शिफ्ट + एल) के लिए जाना अक्षम है। Alt + ` काम नहीं करता है।

मैं एक 'सामग्री स्क्रिप्ट' एक्सटेंशन विकसित कर रहा हूं इसलिए मैं --enable-extensions के साथ क्रोम लॉन्च कर रहा हूं।

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

मैं 'जावास्क्रिप्ट कंसोल' पर जा सकता हूं, लेकिन इसके अंदर सामग्री स्क्रिप्ट नहीं मिल सकता है। मुझे यह भी यकीन नहीं है कि यह 'जावास्क्रिप्ट डीबगर' से अलग कैसे है।

मैं विंडोज एक्सपी पर क्रोम के नवीनतम देव निर्माण (2.0.181.1) का उपयोग कर रहा हूं।

+0

आप जिन विंडोज़ का उपयोग कर रहे हैं उनका संस्करण नीचे डाल सकते हैं: एक्सपी, विस्टा, 7 आरसी ... मुझे पता है क्रोम और विंडोज 7 विशेष रूप से अच्छी तरह से नहीं मिलते हैं। – Joel

उत्तर

34

ये उत्तर सभी पुराने होने लगते हैं, और चूंकि यह Google में अत्यधिक रैंकिंग है, यहां अद्यतित उत्तर है:

डेवलपर टूल लाने के लिए क्रोम प्रेस CTRL+SHIFT+i दबाएं।

चुनें 'स्रोत'

'सामग्री स्क्रिप्ट' छोटा सा तीर है कि आप स्क्रिप्ट से चयन करने के लिए अनुमति देता है पर क्लिक करें enter image description here

तब चयन

enter image description here

फिर आप की आवश्यकता होगी अपनी स्क्रिप्ट प्राप्त करने और उन्हें सामान्य के रूप में डीबग करने के लिए अपने एक्सटेंशन की आईडी (क्रोम प्रबंधित एक्सटेंशन पृष्ठ से उपलब्ध) को जानने के लिए।

+0

वाह, अतीत से विस्फोट। मुझे वास्तव में इस प्रश्न/क्रोम एक्सटेंशन के विकास के बारे में कुछ भी याद नहीं है, लेकिन यह एक ठोस उत्तर की तरह लगता है। –

+0

में चिमिंग के लिए धन्यवाद। अब आपको एक्सटेंशन आईडी जानने की आवश्यकता नहीं है। अब नाम से सूचीबद्ध है। – Teepeemm

+0

यदि आप अपने मैनिफेस्ट के content_scripts अनुभाग को भी खराब करते हैं तो आप बस नहीं देख पाएंगे हमारी सामग्री स्क्रिप्ट सूचीबद्ध, चुपचाप त्रुटि। उदाहरण के लिए यदि आप फेसबुक के लिए एक लोड करना चाहते हैं और content_scripts में केवल https://www.facebook.com/ डालना चाहते हैं, तो आप कभी भी लोड नहीं कर पाएंगे जब भी आप होमपेज पर नहीं थे (कोई पिछला तारांकन नहीं था) उन लिंक पर जिनमें मोबाइल डोमेन (m.facebook.com) शामिल है, आदि –

7

राइट-क्लिक करें और तत्व का निरीक्षण करें, वहां आपको अन्य डीबगिंग टूल के बीच जेएस डीबगर मिलेगा। जेएस डीबगर आपको ब्रेकपॉइंट्स सेट करने की इजाजत देता है, आदि

+0

ठीक है, यह जावास्क्रिप्ट कंसोल है, डीबगर नहीं। एक अंतर लगता है। मुझे यहां घने होने की संभावना है, लेकिन मुझे इस बिंदु पर स्क्रिप्ट में ब्रेकपॉइंट्स डालने का कोई तरीका नहीं मिल रहा है। मैं एक सामग्री स्क्रिप्ट फ़ंक्शन कैसे देख सकता हूं जिसे मैंने किसी ईवेंट ऑब्जेक्ट के रूप में किसी विशेष ऑब्जेक्ट में जोड़ा है? उदा। मैं इस में 'myFuncHere()' को डीबग करने में सक्षम होना चाहता हूं .addEventListener ('क्लिक करें', myFuncHere, true); –

+2

यदि आप इंस्पेक्टर विंडो के शीर्ष पर "स्क्रिप्ट" बटन पर क्लिक करते हैं, तो यह डीबगर होना चाहिए। आप ड्रॉप डाउन मेनू से एक विशेष स्क्रिप्ट स्रोत का चयन कर सकते हैं और फिर ब्रेकपॉइंट सेट करने के लिए लाइन नंबर पर क्लिक कर सकते हैं। – Scott

+0

टिप के लिए धन्यवाद, स्कॉट, लेकिन मुझे वहां मेरी कोई भी उपयोगकर्ता स्क्रिप्ट नहीं दिखाई देती है, केवल वेबसाइट से ही उचित। क्या मैं कुछ भूल रहा हूँ? –

3

आपको क्या करना है, अपना एक्सटेंशन सक्षम करना है, फिर क्रोम में "डेवलपर" -> "जावास्क्रिप्ट कंसोल" पर क्लिक करें। फिर "स्क्रिप्ट" टैब पर क्लिक करें। उसके बाद आपको सभी लोड की गई स्क्रिप्ट के नीचे एक सूची देखना चाहिए। आप वर्तमान पृष्ठ के लिए स्क्रिप्ट और साथ ही आपके द्वारा इंस्टॉल किए गए किसी भी एक्सटेंशन के लिए सभी स्क्रिप्ट देखेंगे। (यदि आपको कंसोल खोलने के बाद सूचीबद्ध कोई भी स्क्रिप्ट नहीं दिखाई देती है, तो आपको रीफ्रेश करना पड़ सकता है)

ऐसा लगता है कि सभी क्रोम एक्सटेंशन को एक अद्वितीय आईडी असाइन की जाती है। आप डेवलपर मोड में क्रोम एक्सटेंशन पेज देखकर अपना आईडी ढूंढ सकते हैं।

तो यह आपकी स्क्रिप्ट के लिए ड्रॉपडाउन में स्क्रिप्ट के माध्यम से खोजना सिर्फ एक मामला है। अपनी स्क्रिप्ट का चयन करें और आप विच्छेदबिंदु आदि सेट कर सकते हैं

वहाँ एक बहुत कुछ है क्रोम देव उपकरण यहाँ बारे में अधिक जानकारी:

debugger; 

का शुभारंभ करेंगे कि: http://www.chromium.org/devtools

44

अपनी स्क्रिप्ट में निम्न आदेश रखो जब यह उस बिंदु पर जाता है तो जावास्क्रिप्ट डीबगर

+0

क्या फ़ायरबग इस मौके का समर्थन करता है? –

+1

मुझे लगता है कि यह फ़ायरबग में काम करता है। इसे क्यों न करें और अगर यह काम करता है तो यहां जवाब दें? :) – Rory

+3

यह मेरे जीवन का सबसे अच्छा दिन है, धन्यवाद – Hassek

संबंधित मुद्दे