6

मैं फ़ायरफ़ॉक्स को कैसे रोकूं अगर यह debugger कीवर्ड देखता है?फ़ायरफ़ॉक्स - 'डीबगर' कीवर्ड अक्षम करें

वेबसाइट को टाइमर का उपयोग करके फ्लाई पर debugger स्टेटमेंट उत्पन्न करने वाले डीबगिंग सुरक्षा का उपयोग करते हुए मुझे निरंतर debugger लूप से बचने की आवश्यकता है।

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

एक उदाहरण वेबसाइट http://www.avito.ru है - रूस में सबसे बड़ी वर्गीकृत साइट। इसे खोलें और फिर डीबगर कंसोल खोलें और यह तुरंत उत्पन्न स्क्रिप्ट में debugger कीवर्ड पर बंद हो जाएगा।

(function(x/**/) { 
 
    (function(f){ 
 
     (function a(){ 
 
      try { 
 
       function b(i) { 
 
        if(
 
         (''+(i/i)).length !== 1 || 
 
         i % 20 === 0 
 
        ) { 
 
         (function(){}).constructor('debugger')(); 
 
        } else { 
 
         debugger; 
 
        } 
 

 
        b(++i); 
 
       } 
 

 
       b(0); 
 
      } catch(e) { 
 
       f.setTimeout(a, x) 
 
      } 
 
     })() 
 
    })(document.body.appendChild(document.createElement('frame')).contentWindow); 
 
});

+0

आप जो उपकरण आप उपयोग कर रहे जिक्र नहीं किया था के रूप में, मैं 'फ़ायरबग' और 'firefox- जोड़ दिया है निष्क्रिय करने के लिए setTimeout/setInterval समारोह पुनर्लेखन कर सकते हैं डेवलपर-टूल्स 'झंडे। –

+0

संदर्भ के लिए, वही प्रश्न [फायरबग चर्चा समूह में पूछा गया था] (https://groups.google.com/forum/#!topic/firebug/uuBYroqt4gA), उदाहरण के रूप में वेबसाइट www.avito.ru प्रदान करना। –

+0

सेबेस्टियन, जो मैं वहां भी मदद की तलाश कर रहा था :) – user201202

उत्तर

3

जाहिर पेज कि निर्माण के साथ अपने जावा स्क्रिप्ट कोड डिबगिंग से लोगों से बचने के लिए कोशिश करता है। Firebug

Firebug में

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

इसके अलावा, फायरबग के पास सभी debugger कथनों को अनदेखा करने का विकल्प नहीं है।

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

Disable Firebug's *Script* panel

नोट: क्योंकि Firebug development is discontinued, यह इसके लिए एक वृद्धि का अनुरोध करने की बेकार है। फ़ायरफ़ॉक्स DevTools

में

डिबगिंग दुर्भाग्य से, Firefox DevTools वर्तमान में debugger बयान पर रोकने से बचने के लिए अनुमति नहीं है। तो आपको bug 1300934 (जो एक ही वेबसाइट के उदाहरण के रूप में उल्लेख करता है) तक प्रतीक्षा करनी है, bug 925269 और/या issue 828 निश्चित हैं।

इसके अलावा डीबगर पैनल को पूरी तरह अक्षम करने का कोई तरीका नहीं है, जिसे bug 1247198 के रूप में दायर किया गया है।

+1

फायरबग, ज़ाहिर है, ओपन सोर्स (फ़ायरफ़ॉक्स है)। तो वांछित सुविधा जोड़ने और पुल अनुरोध भेजने के लिए इसे संशोधित करना संभव हो सकता है। –

+1

सही, हालांकि उल्लेख किया गया है, फायरबग बंद कर दिया गया है और एक बार [बहु-प्रक्रिया फ़ायरफ़ॉक्स] (https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox) सक्षम है। फ़ायरफ़ॉक्स DevTools भी खुले स्रोत हैं, इसलिए इसके बजाय उनके लिए पैच प्रदान करना बेहतर हो सकता है। –

+1

क्षमा करें, मेरा मतलब है कि विशेष रूप से फ़ायरबग के बजाय "उनमें से किसी एक को संशोधित करें"। –

3

अगर आप Greasemonkey का उपयोग आप स्क्रिप्ट

unsafeWindow.setTimeout = function() {}; 
संबंधित मुद्दे