문제

IE 8로 JavaScript를 어떻게 디버그 할 수 있습니까?

IE 8로 업데이트 한 후 Visual Studio를 사용한 JavaScript Debbuging은 작동하지 않습니다.

도움이 되었습니까?

해결책

오늘 우리는 이제 IE 8에 통합 된 개발자 도구 바 플러그인으로 JavaScript를 디버그 할 수 있음을 발견했습니다.

  • 딸깍 하는 소리 ▼ 도구 도구 모음에서 탭의 오른쪽에 있습니다.
  • 고르다 개발자 도구. 개발자 도구 대화가 열려야합니다.
  • 클릭하십시오 스크립트 대화의 탭.
  • 클릭하십시오 디버깅을 시작하십시오 단추.

Professional Browsers의 Debuggers와 유사하게 Watch, Breakpoint, Call Stack 등을 참조하십시오.

문을 사용할 수도 있습니다 debugger; JavaScript 코드에서 중단 점을 설정합니다.

다른 팁

IE8 개발자 도구 모음 디버깅에 대한 자세한 정보를 얻을 수 있습니다. jscript 디버깅 또는 개발자 도구를 사용하여 스크립트 디버깅.

이렇게하면 코드를 밟거나 오류를 중단하는 데 도움이되지 않지만 모든 브라우저에서 프로젝트에 동일한 디버그 콘솔을 얻는 유용한 방법입니다.

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의 빠른 디버깅에 유용하다는 것을 알았습니다. 나는 문제를 해결하는 문제를 해결하기 위해 약간의 조정을 만들었고, 자동으로 아래로 스크롤하고 고정 포지셔닝을 사용하여 뷰포트에 나타납니다. 누구나 유용하다고 생각되는 경우 내 버전은 다음과 같습니다.

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