2009-02-13 8 views
14

पर स्वचालित प्रतिक्रिया क्या क्लाइंट पक्ष पर जावास्क्रिप्ट चलाते समय कोई त्रुटि (यहां तक ​​कि वाक्यविन्यास त्रुटियां) स्वचालित प्रतिक्रिया प्राप्त करने का कोई तरीका है?जावास्क्रिप्ट त्रुटि

मैं कुछ इस तरह की सोच रहा था:

<script src="debugger.js"></script> 
<script> 
    // some script with an error in it 
</script> 

और हर बार डिबगर एक त्रुटि पर ध्यान यह सर्वर के लिए एक प्रतिक्रिया भेजता है।

उत्तर

16

संपादित करें: मैं शुरू में अपने प्रश्न को गलत समझा, यह काम करना चाहिए:

यह भी ध्यान रखें, यह किसी भी जावास्क्रिप्ट सकता है कि त्रुटि पैदा होने से पहले जाने की जरूरत है।

window.onerror = function(msg,u,l) 
{ 
    txt ="Error: " + msg + "\n"; 
    txt+="URL: " + u + "\n"; 
    txt+="Line: " + l + "\n\n"; 
    //Insert AJAX call that passes data (txt) to server-side script 
    return true; 
}; 

वाक्यविन्यास त्रुटियों के लिए, आप भाग्य से बाहर हैं। एक वाक्यविन्यास त्रुटि होने पर जावास्क्रिप्ट बस मर जाता है। इसे संभालने का कोई तरीका नहीं है।

+0

मैंने इसके बारे में भी सोचा है। लेकिन ऐसा लगता है कि सिर्फ फ़ायरफ़ॉक्स यह करता है। जब मैं संदेश को सतर्क करने की कोशिश करता हूं तो सफारी और ओपेरा दोनों चुप रहते हैं। – Gumbo

+0

ठीक है, शायद यह सिर्फ चेतावनी है कि काम नहीं करता है। त्रुटि संदेश प्रिंटिंग करता है। मुझे लगता है कि यह है। धन्यवाद। – Gumbo

+0

एफएफ में काम करता है। इसे IE में काम करने के लिए आपको इंटरनेट विकल्पों के उन्नत टैब में स्क्रिप्ट डिबगिंग को अक्षम करना होगा। मुझे क्रोम और न ही ओपेरा में काम करने के लिए यह नहीं मिला है। – some

4

मुझे वाक्यविन्यास त्रुटियों के बारे में निश्चित नहीं है लेकिन window.onerror घटना का उपयोग करके जेएस त्रुटियों को पकड़ना संभव है। http://james.newtonking.com/archive/2006/05/02/Logging-JavaScript-Errors-To-ASP.NET.aspx (दुर्भाग्य से लिंक पोस्ट में डाउनलोड करने के लिए टूट गया है): "जावास्क्रिप्ट में प्रवेश त्रुटि" गूगल में खोजे जा रहे हैं आप परिणामों का एक बहुत ...

ASP.NET करने के लिए JavaScript त्रुटियां लॉगिंग देता है।

सर्वर से क्लाइंट साइड JavaScript त्रुटियां लॉगिंग: http://www.codeproject.com/KB/ajax/logclientsidejserrors2srv.aspx

JavaScript त्रुटि सूचनाएं: http://www.thecodepage.com/post/JavaScript-Error-Notifications.aspx

0

window.onerror = myfunction (संदेश, यूआरएल, लाइन);

हम त्रुटि विवरण, ब्राउज़र प्रकार (यानी navigator.userAgent) इत्यादि के साथ एक खिड़की पॉप अप करते हैं, जो सभी फ़ील्ड में पढ़ते हैं और उन्हें सबमिट करने के लिए आमंत्रित करते हैं।

हमारे पास एक चेकबॉक्स है "इसे फिर से न दिखाएं" जो एक सत्र कुकी में संग्रहीत होता है - इसलिए यदि वे पॉपअप को अक्षम करने से त्रुटियों को प्राप्त करते रहें।

इस तथ्य के बावजूद कि हमने सोचा कि यह "अच्छी तरह से अच्छा" था, हमें बहुत कम रिपोर्ट मिलती हैं - और मुझे विश्वास नहीं है कि ऐसा इसलिए है क्योंकि हम शून्य रनटाइम त्रुटियों के करीब आते हैं!

9

एक तकनीक के लिए Javascript error logging

हर जावास्क्रिप्ट त्रुटि window.onerror घटना में फंस जा सकती है, अजाक्स उपयोग करने के लिए है। हम सही या गलत लौट सकते हैं ताकि हम चुन सकें कि उपयोगकर्ता सामान्य जावास्क्रिप्ट त्रुटि संवाद देखेंगे या नहीं। यह स्क्रिप्ट, जावास्क्रिप्ट त्रुटि की बहुत ही असंभव घटना में, त्रुटि के बारे में जानकारी एकत्रित करेगी और एक पृष्ठ पर httprequest भेजें जो डेटाबेस में जावास्क्रिप्ट त्रुटि लॉग करेगा।

+0

मैं उस पृष्ठ की तलाश कर रहा था .. +1 –

+0

इस सहायक फ़ंक्शन के लिए आपके लिंक के लिए धन्यवाद। मैं इसे आजमाऊंगा। – Gumbo

0

शायद प्रति पृष्ठ केवल एक त्रुटि रिपोर्ट भेजने के लिए सबसे अच्छा है। यदि आपको दोहराने वाले टाइमर पर कोई त्रुटि मिलती है, या AJAX स्वयं रिकर्सिवली से एक त्रुटि कॉल करता है, तो आप बेकार जंक के साथ अपना लॉग भर सकते हैं।

इसके अलावा, जैसी बातों की वजह से न सुलझा हुआ त्रुटियाँ प्राप्त करने के लिए तैयार रहें: एक्सटेंशन

  • IE मोबाइल से
  • महत्वहीन ब्राउज़र क्रोम त्रुटियों अवरोधित साइटों से
  • लिपियों अपने कोड के साथ diddling

    • सुरक्षा प्रॉक्सी , दुनिया में सबसे खराब ब्राउज़र
  • +1

    आरओएफएल @ आईई मोबाइल –

    0

    मेरे लिए सबसे आसान तरीका यह इंस्टॉल कर रहा था SiteApps बाज़ार से पीपी:

    http://siteapps.com/app/log_javascript_errors_with_ga-181

    एक बार जब आप मंच टैग इंस्टॉल करने के बाद, आप एप्लिकेशन का एक बहुत स्थापित कर सकते हैं और एक के ऊपर मेरे लिए बहुत उपयोगी है। मैं इसे 14 वेबसाइटों में उपयोग करता हूं जिसे मैंने विकसित किया है और मैं Google Analytics में जावास्क्रिप्ट त्रुटियों को ट्रैक कर सकता हूं।

    उम्मीद है कि इससे मदद मिल सकती है।

    लींड्रो

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