2010-01-14 10 views
6

मैं अपनी वेबसाइट डीबग करने के लिए फ़ायरबग के console.log() का उपयोग करता हूं। यदि मैं फ़ायरबग के बिना ब्राउज़र में अपनी वेबसाइट देखने का प्रयास करता हूं तो मुझे कंसोल को त्रुटि परिभाषित नहीं किया गया है। क्या इस त्रुटि से सावधानी से बचने का कोई तरीका है?स्थापित नहीं होने पर फ़ायरबग कंसोल को अनदेखा करें

मुझे this potential solution मिला, लेकिन यह थोड़ा बोझिल लगता है। और विचार?

उत्तर

17

Firebug स्रोत कोड यह करने के लिए एक फ़ाइल प्रदान करता है:

देखें firebugx.js

हर दिन पहिया बदलने मत करो :)

+0

यह वास्तव में वास्तव में एक अच्छा समाधान है, खासकर यदि आप अन्य चेतावनियों जैसे 'चेतावनी' और 'त्रुटि' का उपयोग करते हैं। –

+3

लिंक मेरे लिए असफल रहा। मुझे लगता है कि यह एक ही है: http://code.google.com/p/fbug/source/browse/branches/firebug1.5/lite/firebugx.js –

+0

धन्यवाद मैथ्यू, मैं लिंक भले ही ठीक कर लिया है यह फ़ाइल का अंतिम संस्करण नहीं है (जिसे मैं फ़ायरबग के एसवीएन भंडार में कहीं भी नहीं ढूंढ सकता) – OcuS

2

मुझे नहीं लगता कि यह आपके द्वारा लिंक किए गए कामकाज से कहीं बेहतर है। console.log() को परिभाषित करने और आराम से छोड़ने के लिए इसे पिघलना संभव है, लेकिन संक्षेप में, आपको इस तरह के निर्माण के आसपास नहीं मिलेगा।

केवल एक ही विकल्प जो दिमाग में आता है, हर बार जब आप इसे कॉल करते हैं तो console.log की जांच कर रहा है, और यह और भी बोझिल है।

संपादित नीचे कोड वास्तव में काम नहीं करता है जब फ़ायरफ़ॉक्स मौजूद है:

3

जुड़ा हुआ समाधान मूल रूप से इस का एक संस्करण (कुछ अतिरिक्त कार्यों के साथ) है। यही कारण है कि अभी-अभी अपना ऐसा नहीं 1337 ऑपरेटर || skillz दिखावा करना जाँच के बिना कोड पोस्ट करने के लिए सिखाना होगा:

window.console = window.console || {}; 
console.log = function(){}; 

उस के लिए कारण यह है कि वास्तव में एक गेटर केवल property खिड़की बंद है फ़ायरफ़ॉक्स कंसोल है। इसलिए हम इसे सेट नहीं कर सकते हैं। इसके बजाय, कुछ इस तरह से इस्तेमाल किया जा करने की जरूरत है:

if (!window.console) { 
    window.console = {}; 
    window.console.log = function(){}; 
} 

इसके अलावा, console.log (और console.warn, console.error) मोबाइल सफारी, बहुत अच्छा, हुह सहित वेबकिट ब्राउज़रों, पर काम करेंगे?

+0

कि भी पैदा करता है के लिए jQuery आवरण बनाने का तरीका "कंसोल से परिभाषित नहीं है" त्रुटि – hoju

+0

इसे करने के लिए, धन्यवाद। मैं कोड संपादित करूंगा। –

-1

मेरे सिर के ऊपर बंद:

if(!console) 
{ 
    console = {}; 
    console.log = function() { }; 
} 
+1

जो "कंसोल परिभाषित नहीं किया गया है" त्रुटि – hoju

2

ईमानदारी से, मैं उस का उपयोग करेंगे। इसमें न केवल console.log(), बल्कि अन्य सभी console विधि, और लाइनों की एक छोटी संख्या में शामिल हैं। तथ्य यह है कि इसे याहू मीडिया प्लेयर में पहली बार इस्तेमाल किया गया था, यह सुझाव देता है कि यह उत्कृष्ट क्रॉस-ब्राउज़र भी काम करता है।

कोड का वह कोड आपकी सबसे अच्छी शर्त है, वास्तव में निर्णायक रूप से सुरुचिपूर्ण है, और अधिकांश मामलों में काम करना चाहिए। जब तक आप स्निपेट के ऊपर टिप्पणी करते हैं, तो यह क्या है (ताकि भविष्य के डेवलपर्स को भ्रमित न किया जा सके), आपको ठीक होना चाहिए।

0

मेरे अंतिम समाधान:

if(!("console" in window)) 
    window.console = {log: function() {}}; 
1

@ ओसीयूएस का समाधान निश्चित रूप से सर्वोत्तम है, लेकिन आप इसे मेरे साथ बढ़ा सकते हैं: सी बिल्ली इस तरह एफएफ कंसोल पर लॉग इन करने के: Log to Firefox Error Console from JavaScript

फिर firebugx में जोड़ें।अगर अंदर js इस 3 लाइनों:

window.console['error'] = li 
window.console['warn'] = li 
window.console['debug'] = li 

तो तुम हर सांत्वना त्रुटि, चेतावनी दी और डिबग भी जब Firebug बंद कर दिया है

4

मैं हमेशा अपने पार बनाने के लॉग देखेंगे console.log के समान ब्राउज़र कार्यों के लिए ब्राउज़र रैपर और यह इस तरह दिखता है:

function log(a){ 
try{ 
    console.log(a); 
    }catch(er){ 
    try{ 
    window.opera.postError(a); 
    }catch(er){ 
    //no console avaliable. put 
    //alert(a) here or write to a document node or just ignore 
    } 
    } 

} 

इसे किसी भी ब्राउज़र के लिए बढ़ाया जा सकता है। IE में डिबग में मैं पिछले पकड़ में इस jQuery कोड डालने की सलाह देते हैं होता है जब:

$('body').append('<pre>'+JSON.serialize(a)+'</pre>'); 

आप अपनी स्क्रिप्ट को JSON.serialize जोड़ना होगा। आईई (मुझे यकीन है कि नहीं हूँ, IE8 हो सकता है) यह भी नहीं है

1

आप अगर सांत्वना वस्तु मौजूद है

if('console' in window && 'log' in window.console) 
{ 
    // code using console.log here 
} 

या इस कोड की जांच के लिए इस कोड का उपयोग कर सकते

if(typeof window.console != 'undefined' 
&& typeof window.console.log != 'undefined') 
{ 
    // code using console.log here 
} 
इसके अलावा

आप पोस्ट लिंक के अंदर इस पोस्ट http://alexandershapovalov.com/firebug-console-is-not-defined-60/ पढ़ सकते हैं सांत्वना

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