سؤال

كيف يمكننا تصحيح جافا سكريبت مع IE 8؟

لا يعمل Debroging JavaScript مع Visual Studio بعد تحديث ل IE 8.

هل كانت مفيدة؟

المحلول

اكتشفت اليوم أننا نستطيع الآن تصحيح جافا سكريبت مع الإضافات شريط أدوات المطور في IE 8.

  • انقر ▼ أدوات على شريط الأدوات، إلى يمين علامات التبويب.
  • يختار ادوات المطورين. وبعد يجب فتح حوار أدوات المطور.
  • انقر على النصي علامة التبويب في الحوار.
  • انقر على بدء تصحيح زر.

يمكنك استخدام Watch، نقطة توقف، راجع مكدس المكالمات وما إلى ذلك، على غرار المخاضرين في المتصفحات المهنية.

يمكنك أيضا استخدام العبارة debugger; في رمز JavaScript الخاص بك تعيين نقطة توقف.

نصائح أخرى

يمكنك الحصول على مزيد من المعلومات حول تصحيح شريط أدوات المطور IE8 في تصحيح jscrigg أو نصوص تصحيح الأخطاء مع أدوات المطور.

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

myLog = function() {
    if (!myLog._div) { myLog.createDiv(); }

    var logEntry = document.createElement('span');
    for (var i=0; i < arguments.length; i++) {
        logEntry.innerHTML += myLog.toJson(arguments[i]) + '<br />';
    }
    logEntry.innerHTML += '<br />';

    myLog._div.appendChild(logEntry);
}
myLog.createDiv = function() {
    myLog._div = document.body.appendChild(document.createElement('div'));
    var props = {
        position:'absolute', top:'10px', right:'10px', background:'#333', border:'5px solid #333', 
        color: 'white', width: '400px', height: '300px', overflow: 'auto', fontFamily: 'courier new',
        fontSize: '11px', whiteSpace: 'nowrap'
    }
    for (var key in props) { myLog._div.style[key] = props[key]; }
}
myLog.toJSON = function(obj) {
    if (typeof window.uneval == 'function') { return uneval(obj); }
    if (typeof obj == 'object') {
        if (!obj) { return 'null'; }
        var list = [];
        if (obj instanceof Array) {
            for (var i=0;i < obj.length;i++) { list.push(this.toJson(obj[i])); }
            return '[' + list.join(',') + ']';
        } else {
            for (var prop in obj) { list.push('"' + prop + '":' + this.toJson(obj[prop])); }
            return '{' + list.join(',') + '}';
        }
    } else if (typeof obj == 'string') {
        return '"' + obj.replace(/(["'])/g, '\\$1') + '"';
    } else {
        return new String(obj);
    }
}

myLog('log statement');
myLog('logging an object', { name: 'Marcus', likes: 'js' });

يتم وضع ذلك معا على عجل للغاية وهو قذر قليلا، لكنه مفيد مع ذلك ويمكن تحسينه بسهولة!

كنت آمل أن أضيف هذا كتعليق على رد Marcus Westin، لكنني لا أستطيع العثور على رابط - ربما أحتاج إلى المزيد من السمعة؟


على أي حال، شكرا، لقد وجدت مقتطف الكود هذا مفيدا لتصحيح الأخطاء السريعة في IE. لقد قمت ببعض القرص السريع لإصلاح مشكلة توقفت عن العمل بالنسبة لي، أيضا للتمرير لأسفل تلقائيا واستخدام تحديد المواقع الثابتة لذلك سيظهر في Viewport. إليك الإصدار الخاص بي في حالة العثور عليه من المفيد:

myLog = function() {

    var _div = null;

    this.toJson = function(obj) {

        if (typeof window.uneval == 'function') { return uneval(obj); }
        if (typeof obj == 'object') {
            if (!obj) { return 'null'; }
            var list = [];
            if (obj instanceof Array) {
                    for (var i=0;i < obj.length;i++) { list.push(this.toJson(obj[i])); }
                    return '[' + list.join(',') + ']';
            } else {
                    for (var prop in obj) { list.push('"' + prop + '":' + this.toJson(obj[prop])); }
                    return '{' + list.join(',') + '}';
            }
        } else if (typeof obj == 'string') {
            return '"' + obj.replace(/(["'])/g, '\\$1') + '"';
        } else {
            return new String(obj);
        }

    };

    this.createDiv = function() {

        myLog._div = document.body.appendChild(document.createElement('div'));

        var props = {
            position:'fixed', top:'10px', right:'10px', background:'#333', border:'5px solid #333', 
            color: 'white', width: '400px', height: '300px', overflow: 'auto', fontFamily: 'courier new',
            fontSize: '11px', whiteSpace: 'nowrap'
        }

        for (var key in props) { myLog._div.style[key] = props[key]; }

    };


    if (!myLog._div) { this.createDiv(); }

    var logEntry = document.createElement('span');

    for (var i=0; i < arguments.length; i++) {
        logEntry.innerHTML += this.toJson(arguments[i]) + '<br />';
    }

    logEntry.innerHTML += '<br />';

    myLog._div.appendChild(logEntry);

    // Scroll automatically to the bottom
    myLog._div.scrollTop = myLog._div.scrollHeight;

}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top