javascript पता लगाना कि कंसोल उपलब्ध है या नहीं




debugging (6)

मैं सोच रहा था, अगर कंसोल ऑब्जेक्ट उपलब्ध है तो मैं जावास्क्रिप्ट के साथ कैसे पता लगा सकता हूं?

मुझे समस्या है कि अगर मैं console.log('sthg') जैसे डीबग आउटपुट को हटाना भूल जाता हूं तो मुझे console.log('sthg') , या समान, सक्रिय होने पर कई ब्राउज़रों में त्रुटियां मिलती हैं।

मदद के लिए धन्यवाद

उस समस्या के बगल में मैं कंसोल ऑब्जेक्ट के बारे में सभी सूचनाओं में रूचि रखता हूं। क्या कोई दस्तावेज लिंक है, या तो? क्या यह एक मानक है? और इसी तरह...

https://code.i-harness.com


इससे पहले कि मैं कुछ और लोड करता हूं, मैं हमेशा इसे अपने एचटीएमएल-हेडर के शीर्ष में शामिल करता हूं। Console.debug के साथ डिबगिंग मेरे लिए बहुत लंबा है। और मैं इन कंसोल फ़ंक्शंस के उपयोग को टॉगल करना चाहता हूं।

पता नहीं कैसे कोड अनुकूलित किया गया है, लेकिन यह हमेशा काम करता है।

(function() {
    var consoleDisabled = false;
    if (consoleDisabled) {
        window.console = undefined;
    }
    if (window.console == undefined) {
        window.console = {
            debug: function() {
                return true;
            },
            info: function() {
                return false;
            },
            warn: function() {
                return false;
            },
            log: function() {
                return false;
            }
        }
    }
    debug = (function(args) {
        window.console.debug(args);
    });
    info = (function(args) {
        window.console.info(args);
    });
    warn = (function(args) {
        window.console.warn(args);
    });
    log = (function(args) {
        window.console.log(args);
    });
})();
debug(somevar);
info(somevar);
warn(somevar);
log(somevar);

कंसोल को सुरक्षित रूप से आउटपुट करने का एक अच्छा सरल और छोटा तरीका निम्नानुसार है:

window.console && console.log('Debug message');

यहां मैं क्या उपयोग करता हूं। ध्यान रखें कि मैं कंसोल के लिए कोई समर्थन नहीं के साथ केवल आधे दिल से समर्थित ब्राउज़र हैं। और मैं केवल console.log () का उपयोग करता हूं, लेकिन आप देख सकते हैं कि इसे console.dir (), console.info () आदि का समर्थन करने के लिए कैसे बढ़ाया जा सकता है।

var console = console || {
    "log": function(stuff) {}
};

मुझे यह पसंद है क्योंकि इसे कॉल करने से कोई त्रुटि नहीं होती है, लेकिन यह [अपरिभाषित] लौटाता है, जो मुझे लगता है कि उचित है।

ध्यान दें कि (और बाद में) कई लोगों ने समान पॉलीफिल लिखे हैं:

https://gist.github.com/search?q=console+%7C%7C+console


शायद...

if (console) {
    // do stuff
}

window सदस्य के रूप में मौजूद संपत्ति की जांच करें:

if (window.console) {
}

उस समस्या के बगल में मैं कंसोल ऑब्जेक्ट के बारे में सभी सूचनाओं में रूचि रखता हूं। क्या कोई दस्तावेज लिंक है, या तो? क्या यह एक मानक है? और इसी तरह...

कंसोल एपीआई के लिए फायरबग दस्तावेज़ देखें ; क्रोम और सफारी सबसे सूचीबद्ध हैं, लेकिन सभी सूचीबद्ध नहीं हैं। कंसोल में क्या होना चाहिए यह निर्धारित करने के लिए कोई मानक नहीं है, इसलिए आपको यह देखने के लिए प्रत्येक ब्राउज़र का परीक्षण करना होगा कि यह सुविधा का समर्थन करता है या नहीं।


try{
console.log("test")
}
catch(e){
console={},
console.log=function(a){}
}

बस इसे अपनी जेएस फ़ाइल के शीर्ष पर रखें और फिर console.log () का उपयोग करें; ब्राउज़र त्रुटि के लिए किसी भी चिंता के बिना, आईई 9 में भी यह त्रुटि थी





debugging