2012-07-05 4 views
5

पर काम करता है मेरे पास एक जेएस स्क्रिप्ट है जो सभी ब्राउज़रों में ठीक काम करती है। लेकिन सभी के आश्चर्य के लिए, आईई में। यह पहली कोशिश में काम नहीं करता है।आईई। पहले मेरी जेएस स्क्रिप्ट को पागल करता है, फिर मैं एफ 12 दबाता हूं और यह

यदि, मैं अपना पृष्ठ लोड करने के बाद, मैं F12 दबाता हूं (यानी डीबगर खोलें) और मेरा पृष्ठ रीफ्रेश करें, यह ठीक काम करता है! बस अन्य ब्राउज़रों की तरह! लेकिन इस काम के लिए, मुझे एफ 12 दबा देना है।

क्या हम इसे खोलने पर डीबगर कुछ करते हैं? मुझे समाधान नहीं मिल रहा है!

अग्रिम धन्यवाद।

+1

['कंसोल' का संभावित डुप्लिकेट इंटरनेट एक्सप्लोरर के लिए अपरिभाषित त्रुटि है] (http://stackoverflow.com/questions/3326650/console-is-undefined-erro आर-फॉर-इंटरनेट एक्सप्लोरर), [आईई 9 कंसोल.लॉग का समर्थन करता है, और क्या यह एक वास्तविक काम है?] (http://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and- यह-ए-ए-रीयल-फ़ंक्शन) – kapa

उत्तर

12

दबाते हैं तब तक कोई कंसोल नहीं है जब आपके पास डीबगर खुला नहीं होता है, तो IE को console.log जैसी कोई चीज़ नहीं माना जाता है, और आपको अपरिभाषित फ़ंक्शन को कॉल करने के लिए त्रुटियां मिलती हैं। जब आप F12 दबाते हैं, तो आपको कंसोल मिलता है, और इसलिए console.log अब अपरिभाषित नहीं है।

आप अपने कोड के शीर्ष पर इस डालकर वैकल्पिक हल कर सकते हैं:

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

के बजाय अपने कोड से console.log बाहर संपादन, इस केवल ब्राउज़र कुछ भी नहीं करता है, तो कंसोल मौजूद नहीं है कर देगा , यदि वे अनिर्धारित हैं तो उन्हें 'कुछ भी नहीं' कार्य के रूप में परिभाषित करके।

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

+0

कमाल! बहुत बहुत धन्यवाद। इसने काम कर दिया। मैंने अपने कंसोल लॉग हटा दिए हैं, क्योंकि मुझे वास्तव में उनकी आवश्यकता नहीं है। –

+0

इस विशेष समस्या ने मुझे पहले भी पकड़ा। आप कुछ कंसोल (कंसोल) == 'अपरिभाषित') कंसोल = {लॉग: फ़ंक्शन (टेक्स्ट) {}}; 'अपने कोड में भी अपना कंसोल.लॉग स्टेटमेंट रखने के लिए कुछ जोड़ सकते हैं। – Wernsey

+0

iWerner, यदि आप कंसोल नहीं चला रहे हैं तो भी आप लॉग का उपयोग करने में सक्षम होना चाहते हैं, यह एक बुरा विचार नहीं है। मैंने इस तरह से काम किया क्योंकि मुझे लगा कि अगर मेरे पास कंसोल खुला नहीं है, तो मुझे शायद कुछ भी करने के लिए लॉगिंग की आवश्यकता नहीं होगी, इसलिए मैंने इसे "कुछ भी नहीं" समारोह के रूप में छोड़ दिया। – sylverfyre

2

क्या आपके पास अपनी स्क्रिप्ट में console.log() जैसी कुछ है? यह समझा सकता है, क्योंकि जब तक आप F12

+0

यह काम करता है! धन्यवाद! –

+0

आपका स्वागत है! –

2

पिछले पोस्ट

if (!('console' in window)) { 
    var stub = function() { ; }; 
    window.console = { 
     log : stub, 
     info : stub, 
     warn : stub, 
     error : stub, 
     assert : stub 
    }; 
} 

मैं इस नया पोस्ट करने कर रहा हूँ से विस्तारित संस्करण है कि ठूंठ केवल अगर जरूरत स्थापित

/** 
* On IE console is not set if not opened and debug doesn't exists 
*/ 
(function() { 
    if (!('console' in window)) { window.console = {}; } 
    var kind = ['log', 'info', 'warn', 'error', 'assert', 'debug']; 
    var stub = function() { ; }; 
    for (var i = 0; i < kind.length; i++) { 
     if (kind[i] in window.console) { continue; } 
     window.console[kind[i]] = stub; 
    } 
})(); 
संबंधित मुद्दे