2013-01-04 30 views
13

मैं कुछ बहुत बड़ी और भ्रमित जावास्क्रिप्ट फ़ाइलों के साथ काम करता हूं जिन्हें मैंने नहीं लिखा था। कभी-कभी एक चेतावनी आती है लेकिन मुझे नहीं पता कि यह कहां से आ रहा है।क्या अलर्ट बॉक्स की उत्पत्ति पाने का कोई तरीका है?

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

क्या अलर्ट को अवरुद्ध करने के लिए ब्रेकपॉइंट सेट करने का कोई तरीका है?

+1

फ़ाइलों सर्च कर रहे हैं बहुत कठिन विशेष रूप से एक चेतावनी के लिए नहीं है। यह वास्तव में पूरी तरह से उपयोग नहीं किया जाता है (ज्यादातर क्योंकि जावास्क्रिप्ट अलर्ट परेशान कर रहे हैं)। यदि आप लिनक्स पर हैं, तो grep का प्रयोग करें। यदि आप मैक पर हैं, तो grep का उपयोग करें। यदि आप विंडोज़ पर हैं, तो लिनक्स इंस्टॉल करें। –

उत्तर

30

अपने HTML के बहुत शीर्ष पर:

window.alert = function() { 
    debugger; 
} 

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

+1

यह अच्छा है, अंगूठे ऊपर – kidwon

+0

दोस्त, यह अच्छा है, यह नहीं पता था ... –

3

यह आपके लिए सहायक हो सकता है या नहीं भी हो सकता है, लेकिन आप जो कुछ भी चाहते हैं उसे करने के लिए alert फ़ंक्शन को ओवरराइट कर सकते हैं। उदाहरण के लिए, अलर्ट बॉक्स के बजाय, आप इसे कंसोल पर संदेश लॉग कर सकते हैं।

window.alert = function(msg) { 
    console.log(msg); 
} 
alert('test'); 
3

क्रोम पुश F12 कुंजी खोलें और Sources पर जाएं। फिर एक स्क्रिप्ट फ़ाइल Ctrl+F चुनें और अलर्ट के लिए खोजें। आप अपनी इच्छानुसार किसी भी लाइन पर ब्रेकपॉइंट डाल सकते हैं

3

मैं ब्रायन ग्लाज़ से सहमत हूं, लेकिन अधिक जानकारी (लाइन नंबर) प्राप्त करने के लिए आप कुछ चेतावनी देते समय और कंसोल पर त्रुटि को आउटपुट करते समय त्रुटि फेंकने का प्रयास कर सकते हैं। इस तरह, कंसोल आपको सही लाइन नंबर पर इंगित करेगा जहां अलर्ट फ़ंक्शन कहा जाता था।

रखें अपने दस्तावेज़ के शीर्ष पर इस स्निपेट और इसे आजमाइए:

var originalAlert = window.alert; 
window.alert = function(){ 
    try{ 
     throw new Error('alert was called'); 
    } catch(e){ 
     console.warn(e); 
    } 
    return originalAlert.apply(window, arguments); 
} 
संबंधित मुद्दे