veuillez - your computer does not have javascript enabled




كيف أقوم بطباعة رسائل تصحيح الأخطاء في Google Chrome JavaScript Console؟ (10)

أنا شخصياً استخدم هذا ، وهو مشابه لـ tarek11011's:

// 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() مباشرة في شفرة جافا سكريبت ، لأنك إذا نسيتها ، وأنها في موقع الإنتاج ، يمكن أن تنكسر كل شفرة جافا سكريبت لتلك الصفحة.

كيف أقوم بطباعة رسائل تصحيح الأخطاء في Google Chrome JavaScript Console؟

يرجى ملاحظة أن وحدة تحكم جافا سكريبت ليست هي نفسها أداة تصحيح جافا سكريبت ؛ لديهم بناء الجملة المختلفة AFAIK ، لذلك لن يعمل أمر الطباعة في JavaScript Debugger هنا. في وحدة تحكم JavaScript ، ستقوم print() بإرسال المعلمة إلى الطابعة.


أو استخدم هذه الوظيفة:

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

برنامج Internet Explorer 7 بسيط وأسفل shim يحافظ على ترقيم الأسطر للمتصفحات الأخرى:

/* Console shim */
(function () {
    var f = function () {};
    if (!window.console) {
        window.console = {
            log:f, info:f, warn:f, debug:f, error:f
        };
    }
}());

تحسين على فكرة Andru ، يمكنك كتابة برنامج نصي مما يخلق وظائف وحدة التحكم إذا لم تكن موجودة:

if (!window.console) console = {};
console.log = console.log || function(){};
console.warn = console.warn || function(){};
console.error = console.error || function(){};
console.info = console.info || function(){};

ثم استخدم أيًا مما يلي:

console.log(...);
console.error(...);
console.info(...);
console.warn(...);

تقوم هذه الوظائف بتسجيل أنواع مختلفة من العناصر (التي يمكن تصفيتها استنادًا إلى السجل أو المعلومات أو الخطأ أو التحذير) ولن تتسبب في حدوث أخطاء عند عدم توفر وحدة التحكم. ستعمل هذه الوظائف في وحدات تحكم Firebug و Chrome.


تنفيذ التعليمات التالية من شريط عنوان المتصفح:

javascript: console.log(2);

بنجاح طباعة الرسالة إلى "وحدة تحكم JavaScript" في Google Chrome.


لقد واجهت الكثير من المشاكل مع المطورين التحقق في وحدة التحكم الخاصة بهم. () عبارات. وأنا لا أحب تصحيح أخطاء Internet Explorer ، على الرغم من التحسينات الرائعة في Internet Explorer 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);
        // ...
    }

ثم من المنتج الذي تم إصداره ، اكتب ما يلي في وحدة التحكم (أو شريط العنوان مسبوقًا بـ "javascript: '):

    top.__examine_someLabel = true;

ثم ، سأشاهد كافة عبارات console.examine () التي تم تسجيلها. لقد كانت مساعدة رائعة عدة مرات.


مجرد تحذير سريع - إذا كنت تريد الاختبار في Internet Explorer دون إزالة كافة console.log () ، فستحتاج إلى استخدام Firebug Lite أو ستحصل على بعض الأخطاء الودية بشكل خاص.

(أو إنشاء console.log () الخاص بك والتي تقوم فقط بإرجاع false.)


هنا هو برنامج نصي قصير يتحقق مما إذا كانت وحدة التحكم متوفرة. إذا لم يكن الأمر كذلك ، فإنه يحاول تحميل Firebug وإذا كان Firebug غير متوفر فإنه يقوم بتحميل Firebug Lite. الآن يمكنك استخدام 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.
}

يمكنك استخدام console.log() إذا كان لديك رمز تم تصحيحه في محرر برامج البرمجة لديك ولسوف ترى أن الناتج غالباً ما يكون أفضل محرر لي (Google Chrome). ما عليك سوى الضغط على F12 والضغط على علامة التبويب Console. سترى النتيجة. الترميز سعيدة. :)


console.debug("");

باستخدام هذا الأسلوب بطباعة النص بلون أزرق مشرق في وحدة التحكم.





google-chrome