javascript - কিভাবে আমি গুগল ক্রোম জাভাস্ক্রিপ্ট কনসোলে ডিবাগ বার্তা প্রিন্ট করব?




7 Answers

ব্রাউজার ঠিকানার বার থেকে নিম্নলিখিত কোডটি চালানো হচ্ছে:

javascript: console.log(2);

সফলভাবে গুগল ক্রোমে "জাভাস্ক্রিপ্ট কনসোল" বার্তাটি প্রিন্ট করে।

কিভাবে আমি গুগল ক্রোম জাভাস্ক্রিপ্ট কনসোলে ডিবাগ বার্তা প্রিন্ট করব?

জাভাস্ক্রিপ্ট কনসোল জাভাস্ক্রিপ্ট ডিবাগার হিসাবে একই নয় দয়া করে নোট করুন; তাদের বিভিন্ন সিনট্যাক্স AFAIK আছে, তাই জাভাস্ক্রিপ্ট ডিবাগারে মুদ্রণ কমান্ড এখানে কাজ করবে না। জাভাস্ক্রিপ্ট কনসোলে, print() প্রিন্টারে প্যারামিটার পাঠাবে।




শুধু একটি দুর্দান্ত বৈশিষ্ট্য যোগ করুন যা অনেক ডেভেলপার মিস করে:

console.log("this is %o, event is %o, host is %s", this, e, location.host);

এটি একটি জাভাস্ক্রিপ্ট বস্তুর যাদুকর %o ডাম্প ক্লিকযোগ্য এবং গভীর-ব্রাউজযোগ্য সামগ্রী। %s শুধুমাত্র একটি রেকর্ডের জন্য দেখানো হয়েছে।

এছাড়াও এই খুব শান্ত:

console.log("%s", new Error().stack);

যা new Error() আহ্বানের বিন্দুতে একটি জাভা-মত স্ট্যাক ট্রেস দেয় new Error() ফাইল এবং লাইন নম্বরের পথ সহ!)।

উভয় %onew Error().stack ক্রোম এবং ফায়ারফক্সে পাওয়া যায়!

এছাড়াও ফায়ারফক্স ব্যবহার স্ট্যাক ট্রেস জন্য:

console.trace();

https://developer.mozilla.org/en-US/docs/Web/API/console বলেছেন।

শুভ হ্যাকিং!

আপডেট : কিছু লাইব্রেরি খারাপ মানুষ দ্বারা লেখা হয় যা console অবজেক্টকে তাদের নিজস্ব উদ্দেশ্যে পুনরায় সংজ্ঞায়িত করে। লাইব্রেরি লোড করার পরে মূল ব্রাউজার console পুনরুদ্ধার করতে, ব্যবহার করুন:

delete console.log;
delete console.warn;
....

স্ট্যাক ওভারফ্লো প্রশ্ন পুনঃস্থাপন console.log () দেখুন




এখানে একটি সংক্ষিপ্ত স্ক্রিপ্ট যা কনসোল উপলব্ধ থাকলে চেক করে। এটি না থাকলে, এটি Firebug লোড করার চেষ্টা করে এবং ফায়ারবগ উপলব্ধ না থাকলে এটি ফায়ারবগ লাইট লোড করে। এখন আপনি কোন ব্রাউজারে console.log ব্যবহার করতে পারেন। উপভোগ করুন!

if (!window['console']) {

    // Enable console
    if (window['loadFirebugConsole']) {
        window.loadFirebugConsole();
    }
    else {
        // No console, use Firebug Lite
        var firebugLite = function(F, i, r, e, b, u, g, L, I, T, E) {
            if (F.getElementById(b))
                return;
            E = F[i+'NS']&&F.documentElement.namespaceURI;
            E = E ? F[i + 'NS'](E, 'script') : F[i]('script');
            E[r]('id', b);
            E[r]('src', I + g + T);
            E[r](b, u);
            (F[e]('head')[0] || F[e]('body')[0]).appendChild(E);
            E = new Image;
            E[r]('src', I + L);
        };
        firebugLite(
            document, 'createElement', 'setAttribute', 'getElementsByTagName',
            'FirebugLite', '4', 'firebug-lite.js',
            'releases/lite/latest/skin/xp/sprite.png',
            'https://getfirebug.com/', '#startOpened');
    }
}
else {
    // Console is already available, no action needed.
}



অথবা এই ফাংশন ব্যবহার করুন:

function log(message){
    if (typeof console == "object") {
        console.log(message);
    }
}



ব্যক্তিগতভাবে আমি এই ব্যবহার, যা tarek11011 এর অনুরূপ:

// Use a less-common namespace than just 'log'
function myLog(msg)
{
    // Attempt to send a message to the console
    try
    {
        console.log(msg);
    }
    // Fail gracefully if it does not exist
    catch(e){}
}

মূল পয়েন্টটি হল যে কমপক্ষে আপনার জাভাস্ক্রিপ্ট console.log() ঠিক আটকে থাকা ছাড়া লগিংয়ের কিছু অনুশীলন করা ভাল ধারণা, কারণ যদি আপনি এটি ভুলে যান এবং এটি কোনও প্রোডাক্ট সাইটে থাকে তবে এটি সম্ভাব্যভাবে বিরতিতে পারে যে পৃষ্ঠার জন্য জাভাস্ক্রিপ্ট কোড সব।




আমি ডেভেলপারদের তাদের কনসোল চেকিং সঙ্গে অনেক সমস্যা হয়েছে। () বিবৃতি। এবং, ইন্টারনেট এক্সপ্লোরার 10 এবং Visual Studio 2012 এর চমত্কার উন্নতিগুলি সত্ত্বেও, আমি সত্যিই ইন্টারনেট এক্সপ্লোরার ডিবাগিং পছন্দ করি না।

সুতরাং, আমি কনসোল অবজেক্টটি নিজেই ওভাররাইড করেছি ... আমি একটি __localhost ফ্ল্যাগ যুক্ত করেছি যা স্থানীয় হোস্টে যখন শুধুমাত্র কনসোল বিবৃতিগুলিকে অনুমতি দেয়। আমি কনসোল যোগ করেছি। () ইন্টারনেট এক্সপ্লোরারের ফাংশন (এটি পরিবর্তে একটি সতর্কতা () প্রদর্শন করে)।

// Console extensions...
(function() {
    var __localhost = (document.location.host === "localhost"),
        __allow_examine = true;

    if (!console) {
        console = {};
    }

    console.__log = console.log;
    console.log = function() {
        if (__localhost) {
            if (typeof console !== "undefined" && typeof console.__log === "function") {
                console.__log(arguments);
            } else {
                var i, msg = "";
                for (i = 0; i < arguments.length; ++i) {
                    msg += arguments[i] + "\r\n";
                }
                alert(msg);
            }
        }
    };

    console.__info = console.info;
    console.info = function() {
        if (__localhost) {
            if (typeof console !== "undefined" && typeof console.__info === "function") {
                console.__info(arguments);
            } else {
                var i, msg = "";
                for (i = 0; i < arguments.length; ++i) {
                    msg += arguments[i] + "\r\n";
                }
                alert(msg);
            }
        }
    };

    console.__warn = console.warn;
    console.warn = function() {
        if (__localhost) {
            if (typeof console !== "undefined" && typeof console.__warn === "function") {
                console.__warn(arguments);
            } else {
                var i, msg = "";
                for (i = 0; i < arguments.length; ++i) {
                    msg += arguments[i] + "\r\n";
                }
                alert(msg);
            }
        }
    };

    console.__error = console.error;
    console.error = function() {
        if (__localhost) {
            if (typeof console !== "undefined" && typeof console.__error === "function") {
                console.__error(arguments);
            } else {
                var i, msg = "";
                for (i = 0; i < arguments.length; ++i) {
                    msg += arguments[i] + "\r\n";
                }
                alert(msg);
            }
        }
    };

    console.__group = console.group;
    console.group = function() {
        if (__localhost) {
            if (typeof console !== "undefined" && typeof console.__group === "function") {
                console.__group(arguments);
            } else {
                var i, msg = "";
                for (i = 0; i < arguments.length; ++i) {
                    msg += arguments[i] + "\r\n";
                }
                alert("group:\r\n" + msg + "{");
            }
        }
    };

    console.__groupEnd = console.groupEnd;
    console.groupEnd = function() {
        if (__localhost) {
            if (typeof console !== "undefined" && typeof console.__groupEnd === "function") {
                console.__groupEnd(arguments);
            } else {
                var i, msg = "";
                for (i = 0; i < arguments.length; ++i) {
                    msg += arguments[i] + "\r\n";
                }
                alert(msg + "\r\n}");
            }
        }
    };

    /// <summary>
    /// Clever way to leave hundreds of debug output messages in the code,
    /// but not see _everything_ when you only want to see _some_ of the
    /// debugging messages.
    /// </summary>
    /// <remarks>
    /// To enable __examine_() statements for sections/groups of code, type the
    /// following in your browser's console:
    ///       top.__examine_ABC = true;
    /// This will enable only the console.examine("ABC", ... ) statements
    /// in the code.
    /// </remarks>
    console.examine = function() {
        if (!__allow_examine) {
            return;
        }
        if (arguments.length > 0) {
            var obj = top["__examine_" + arguments[0]];
            if (obj && obj === true) {
                console.log(arguments.splice(0, 1));
            }
        }
    };
})();

উদাহরণ ব্যবহার করুন:

    console.log("hello");

ক্রোম / ফায়ারফক্স:

    prints hello in the console window.

ইন্টারনেট এক্সপ্লোরার:

    displays an alert with 'hello'.

যারা কোডটি ঘনিষ্ঠভাবে দেখেন তাদের জন্য আপনি console.examine () ফাংশনটি আবিষ্কার করবেন। আমি এই বছর আগে তৈরি করেছি যাতে আমি QA / গ্রাহকের সমস্যাগুলির সমস্যা সমাধানে সহায়তা করতে পণ্যটির কাছাকাছি কিছু নির্দিষ্ট অঞ্চলে ডিবাগ কোডটি ছেড়ে দিতে পারি। উদাহরণস্বরূপ, আমি কিছু মুক্তি কোড নিম্নলিখিত লাইন ছেড়ে চলে যেতে হবে:

    function doSomething(arg1) {
        // ...
        console.examine("someLabel", arg1);
        // ...
    }

এবং তারপর ছেড়ে দেওয়া পণ্য থেকে, কনসোলে নিম্নলিখিতটি টাইপ করুন (অথবা 'জাভাস্ক্রিপ্ট:' দিয়ে প্রিফিক্সড ঠিকানা বার):

    top.__examine_someLabel = true;

তারপর, আমি লগইন console.examine () বিবৃতিগুলি দেখতে পাবেন। এটা অনেকবার একটি চমত্কার সাহায্য হয়েছে।




console.debug("");

এই পদ্ধতিটি ব্যবহার করে কনসোলের একটি উজ্জ্বল নীল রঙের পাঠটি প্রিন্ট করে।




Related

javascript console debugging google-chrome