Chrome 디버거에서 JavaScript 코드를 단계별로 실행할 때 계속하지 않으려면 어떻게 스크립트 실행을 종료합니까? 내가 찾은 유일한 방법은 브라우저 창을 닫는 것입니다.
“Reload this page”를 누르면 나머지 코드가 실행되고 F8 “Continue”를 누른 것처럼 양식을 제출합니다.
업데이트 :
스크립트가 일시 정지 된 상태에서 F5 (새로 고침)를 누르면 :
- Chrome (v22)은 스크립트를 실행합니다. 스크립트가 HTTP 요청을 제출하면 해당 요청에 대한 HTTP 응답이 표시됩니다. 원본 페이지가 새로 고쳐지지 않습니다.
- IE 9는 멈 춥니 다. 그러나 IE에는 “Stop Debugging”옵션이 있는데,이 버튼을 누르면 (F5를 누르지 않은 경우) 디버거 외부에서 스크립트를 계속 실행합니다.
- Firebug는 Chrome과 동일하게 작동합니다.
브라우저 창을 닫았다가 다시 여는 것이 브라우저 세션 상태를 종료시키고 중요 할 수 있기 때문에 항상 다음으로 가장 쉬운 방법은 아닙니다. 모든 중단 점도 손실됩니다.
업데이트 (2014 년 1 월) :
디버깅하는 동안 새로 고침 :
- Chrome v31 : 추가 중단 점에서 스크립트를 실행하고 중지 한 다음 (아약스 요청을 제출하지 않음) 새로 고칩니다.
- IE 11 : 새로 고침은 아무 것도 수행하지 않지만 F5를 눌러 계속할 수 있습니다.
- Firefox v26 : 스크립트 실행을 허용하지만 추가 중단 점에서 중지하지 않고 ajax 요청을 제출 한 다음 새로 고칩니다.
진보의 종류!
디버깅하는 동안 동일한 페이지로 이동하십시오.
- Chrome v31 : 새로 고침과 동일합니다.
- IE 11 : 스크립트가 종료되고 새 브라우저 세션이 시작됩니다 (닫았다가 다시 여는 것과 동일).
- Firefox v26 : 아무 일도 일어나지 않습니다.
또한 juacala 는 효과적인 해결 방법을 제안했습니다. 예를 들어, jQuery를 사용하는 경우 콘솔에서 delete $ 를 실행하면 jQuery 메소드가 발견되면 실행이 중지됩니다. 위의 모든 브라우저에서 테스트했으며 작동하는지 확인할 수 있습니다.
업데이트 (2015 년 3 월) :
마지막으로 2 년이 넘고 거의 10 만 회의 조회 후 Alexander K가 정답을 올렸습니다. Chrome에는 자체 작업 관리자가 있어 탭 자체 를 닫지 않고도 탭 프로세스 를 종료하여 모든 중단 점 및 기타 사항을 그대로 유지할 수 있습니다.
Chrome v22에서 브라우저를 테스트하기 위해 BrowserStack.com까지 갔으며 그 당시에도 이런 방식으로 작동한다는 것을 알았습니다.
Juacala의 해결 방법은 IE 또는 Firefox에서 디버깅 할 때 여전히 유용합니다.
업데이트 (2019 년 1 월) :
Chrome 개발자 도구는 마침내 스크립트 실행을 중지하는 적절한 방법을 추가했습니다 (약간 숨겨져 있지만). 자세한 내용은 James Gentes의 답변을 참조하십시오.
답변
Chrome에는 “작업 관리자”가 있으며 Shift+ ESC또는
메뉴 → 추가 도구 → 작업 관리자
“작업 끝내기”버튼을 눌러 페이지 작업을 선택하고 종료 할 수 있습니다.
답변
현재 2018년 4월, 당신은 크롬에서 무한 루프를 중지 할 수 있습니다 :
- 오픈 소스 개발자 도구 패널 ( Ctrl+ Shift+ I**)를.
- 스크립트 실행 을 일시 중지 하려면 일시 중지 버튼을 클릭하십시오 .
또한 바로 가기 키를주의 : F8및 Ctrl+\
답변
이를 수행 할 수있는 한 가지 방법은 스크립트를 일시 중지하고 현재 중지 된 곳에서 어떤 코드가 뒤에 오는지 확인하는 것입니다. 예 :
var something = somethingElse.blah;
콘솔에서 다음을 수행하십시오.
delete somethingElse;
그런 다음 스크립트를 재생하십시오. 액세스하려고하면 치명적인 오류가 발생 somethingElse
하고 스크립트가 종료됩니다. Voila, 당신은 스크립트를 종료했습니다.
편집 : 원래 변수를 삭제했습니다. 충분하지 않습니다. JavaScript가 속성에 액세스하려고하는 함수 또는 객체를 삭제해야합니다.
답변
2020 년 4 월 업데이트
Chrome 80부터 현재 답변이 작동하지 않습니다. “일시 정지”버튼이 보이지 않습니다. “재생”버튼을 길게 클릭하여 중지 아이콘에 액세스해야합니다.
답변
debugger
명령문 을 사용하는 동안이 문제가 발생하면
debugger;
… 그런 다음 js 런타임이 나올 때까지 또는 다음 중단 때까지 페이지가 계속 실행될 것이라고 생각합니다. 오류시 중단 모드 (일시 중지 아이콘 전환)에 있다고 가정하면 다음과 같이 대신 중단이 발생하도록 할 수 있습니다.
debugger;throw 1;
또는 존재하지 않는 함수를 호출 할 수 있습니다.
debugger;z();
(물론 이것은 당신이 비록 아마 당신이 동적으로 추가 할 수 있습니다, 함수를 통해 단계를 시도하는 경우에 도움이되지 않는 가운데 throw 1
하거나 z()
또는 소스 패널에서 somesuch, CTRL-S는 저장하고 Ctrl-R은 …이 새로 고침 그러나 하나의 중단 점을 건너 뛸 수 있지만 루프 상태 인 경우 작동 할 수 있습니다.)
루프를 수행하고 debugger
명령문을 다시 트리거하려면 throw 1
대신 입력하십시오 .
throw 1;
그런 다음 ctrl-R을 누르면 다음 던지기가 발생하고 페이지가 새로 고쳐집니다.
(2017 년 4 월경 Chrome v38에서 테스트)
답변
좋은 질문입니다. 스크립트 실행을 종료 할 수 없다고 생각합니다. 나는 그것을 찾지 못했지만 크롬 디버거를 오랫동안 사용했습니다. 나는 보통 자바 스크립트 코드에 중단 점을 설정 한 다음 관심있는 코드 부분을 디버깅한다. 해당 코드 디버깅을 마치면 보통 프로그램의 나머지 부분을 실행하거나 브라우저를 새로 고침한다.
스크립트의 나머지 부분이 실행되는 것을 방지하려면 (예 : AJAX 호출로 인해) 콘솔에서 해당 코드를 즉시 제거하여 해당 호출을 방지 할 수 있습니다 실행 되지 않으면 나머지 코드를 문제없이 실행할 수 있습니다.
이게 도움이 되길 바란다!
추신 : 다음 자습서와 같은 일부 자습서 / 안내서에서 실행을 종료하는 옵션을 찾으려고했지만 찾을 수 없었습니다. 앞서 말했듯이, 아마도 그러한 옵션이 없을 것입니다.
http://www.codeproject.com/Articles/273129/Beginner-Guide-to-Page-and-Script-Debugging-with-C
답변
@scottndecker의 다음 질문에 대한 답변을 참조 하면 Chrome은 이제 개발자 도구에서 ‘JavaScript 비활성화’옵션을 제공합니다.
...
오른쪽 상단의 세로- 설정
- ‘환경 설정’에서 맨 아래의 ‘디버거’섹션으로 이동하여 ‘JavaScript 비활성화’를 선택하십시오.
좋은 점은 체크 / 체크 해제하는 것만으로 중지했다가 다시 실행할 수 있다는 것입니다.