2011-10-25 7 views
12

मैं अपने प्रोग्राम के जावास्क्रिप्ट पक्ष में कुछ लॉगिंग करने के लिए console.log का उपयोग करने का प्रयास कर रहा हूं। मैंने देखा, हालांकि, जब तक कि IE में dev console खुला नहीं है, जेएस मूल रूप से कंसोल.लॉग हिट करते समय काम करना बंद कर देता है। यह एक दर्द है ... इसका मतलब है कि जब भी मैं उत्पादन निर्माण करना चाहता हूं तो मुझे सभी लॉगिंग को हटाना होगा।आईई के तहत कोड तोड़ने के बिना कंसोल पर लॉग इन करने का कोई तरीका है?

स्पष्ट के अलावा

:

function DoSafeConsoleLog(parameters) 
{ 
    if (!$.browser.msie) 
    { 
     console.log(parameters); 
    } 
} 

वहाँ जावास्क्रिप्ट कि सभी प्रमुख ब्राउज़रों के लिए अनुकूल है लॉग इन करने के लिए एक अच्छा तरीका है?

संपादित करें:

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

+0

संभव [IE में console.log बयानों के लिए परीक्षण] की डुप्लीकेट (http://stackoverflow.com/questions/7585351/परीक्षण-के-कंसोल-लॉग-स्टेटमेंट-इन-यानी) – zzzzBov

+0

['कंसोल' का संभावित डुप्लिकेट इंटरनेट एक्सप्लोरर के लिए अपरिभाषित त्रुटि है] (http://stackoverflow.com/questions/3326650/console-is-undefined-error -for-internet-explorer) – skolima

उत्तर

9

आईई अपनी ही सांत्वना है, और आप अभ्यस्त अगर आप firebug lite उपयोग कर रहे हैं सांत्वना ओवरराइड करना चाहते।

if (window.console) console.log('foo bar baz', fizz, buzz); 

अभी तक बेहतर, && का उपयोग शॉर्टकट के लिए: बस सुनिश्चित करें कि कंसोल मौजूद है कि जब लॉग कहा जाता हो जाता है बनाने के

window.console && console.log('foo bar baz', fizz, buzz); 
+1

आपका क्या मतलब है "आईई का अपना कंसोल है?" यह कंसोल कंसोल.लॉग के साथ खुशी से काम करता है अगर डेवलपर कंसोल खुला है। अन्य ब्राउज़र अपने कंसोल पर लॉग इन करने में सक्षम हैं भले ही यह स्पष्ट रूप से खुला न हो। बस उत्सुक, यह नहीं कह रहा कि आपका जवाब बिल्कुल गलत है। आपके पास निश्चित रूप से वैध अंक हैं जिन पर मैं विचार कर रहा हूं। :) –

+0

मैं 'window.console और कंसोल पर स्विच किया।लॉग() 'और अब सब कुछ आईई में काम करता है! – Avishai

+0

बस एक हेड-अप, यह आपके कंसोल कोड में 'console.log की सीप को जाने का सबसे बुरा विचार है। –

15

आप एक नकली console बना सकते हैं:

if (typeof console === "undefined") 
    console = { log: function() { } }; 
+0

मैं इस विचार का विशेष रूप से शौकीन नहीं हूं क्योंकि यह पृष्ठ लोड के बाद कंसोल को ओवरराइड करेगा जैसे कि [फायरबग लाइट] (http://getfirebug.com/firebuglite)। – zzzzBov

+0

ईमानदारी से मैंने फायरबग लाइट के साथ बहुत लड़ा और इसे हटा दिया। मैंने पाया कि क्रोम के डेवलपर कंसोल मेरे लिए चीजों को समझने के लिए पर्याप्त था - और फायरबग लाइट दिन में एक बार संभवतः बाहर निकल जाएगा और बंद होना होगा। बस मेरे अनुभव, हालांकि। –

+1

@ सेन एंडरसन, '<स्क्रिप्ट टाइप =" टेक्स्ट/जावास्क्रिप्ट "src =" https://getfirebug.com/firebug-lite.js "> 'इसे केवल आईई के लिए जोड़ देगा। – zzzzBov

0

मैं fauxconsole उपयोग कर रहा हूँ; मैंने सीएसएस को थोड़ा सा संशोधित किया ताकि यह अच्छा लगे लेकिन बहुत अच्छी तरह से काम करता है।

1

मैं इस अपने आप झलकी

if (! ('console' in window)) { 
var names = ['log', 'debug', 'info', 'warn', 'error', 'assert', 'dir', 'dirxml', 'group', 'groupEnd', 'time', 'timeEnd', 'count', 'trace', 'profile', 'profileEnd']; 
window.console = {}; 
for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {}; 
}else { 
/*if it exists but doesn't contain all the same methods....silly ie*/ 
var names = ['log', 'debug', 'info', 'warn', 'error', 'assert', 'dir', 'dirxml', 'group', 'groupEnd', 'time', 'timeEnd', 'count', 'trace', 'profile', 'profileEnd']; 
for (var i = 0; i < names.length; ++i) if(!window.console[names[i]])window.console[names[i]] = function() {}; 
}; 
0

मैं "नकली कंसोल" ऊपर वर्णित का उपयोग कर, स्क्रिप्ट निष्पादन तोड़ने को रोकने के लिए द्वारा इसे हल का उपयोग करें। यह केवल InternetExplorer के लिए शामिल है मैं यह मेरा एचटीएमएल सिर में शामिल हैं:

<!--[if lte IE 10]> 
    <script> if (typeof console === "undefined") console = { log: function() { } }; </script> 
<![endif]--> 
संबंधित मुद्दे

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