코드로 실수하고 JavaScript에서 무한 루프를 유발하고 Alert ()를 계속 호출하면 루프를 중지 할 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/894530

  •  23-08-2019
  •  | 
  •  

문제

때로는 디버그 코드를 사용하여 JavaScript (예 : 정규 표현식으로 무언가와 일치하는 것)를 알리지만 수정자를 잊어 버리면 경고가 무한 루프에 있습니다 (또는 루프가 패턴과 300 번 일치하는 경우). Firefox를 사용하는 경우 경고가 계속 나오고 탭, 창 또는 앱을 닫을 방법이 없습니다.

출구를 강제하면 모든 탭과 다른 Firefox 창을 닫을 것입니다 ... 실제로 루프를 더 우아하게 멈출 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

짧은 대답은 다음과 같습니다. 아니요.

이것은 Firebug와 Console.log 함수를 사용하는 좋은 이유 중 하나입니다. 아이러니하게도, 어떤 경우에는 표시되지 않기 때문에 "스크립트 중지"가 표시되지 않기 때문에 현재 위치가 바로 돌아옵니다.

크롬과 오페라에는이 기능이 있습니다. 즉, Apple Safari도 그렇지 않습니다.

기본 솔루션은 아니지만이 그리스 몬키 스크립트를 사용해 볼 수 있습니다. http://www.tumuski.com/2008/05/javaScript-alert-cancel-button/

또한, 당신 ~할 수 있었다 Alert 함수를 대신 대신 확인 대화 상자를 사용하고 확인이 취소 된 경우 알림 표시를 중지하기 만하면됩니다.

var displayAlerts = true;

그리고:

function alert(msg) {
  if (displayAlerts) {
     if (!confirm(msg)) {
       displayAlerts = false;           
     }
  }
}

다른 팁

Firefox에서 할 수있는 것 같습니다.

  1. Ctrl을 보유하십시오
  2. 입력하십시오
  3. F4를 한 번 누릅니다

블로그 게시물에 따르면 모든 경우에도 효과가 없으며 여기에 자세한 정보가 있습니다. puremango.co.uk

Chrome을 사용하면 추가 경보가 표시되는 것을 방지 할 수 있습니다.

이 문제를 해결하기 위해 Firefox 확장을 작성했습니다.

https://addons.mozilla.org/en-us/firefox/addon/13176

안 돼요. 좋은 점은 대부분의 브라우저에는 무한 재귀 보호가 있지만 이는 오프 토피입니다.

Greasemonkey를 설치 하고이 페이지로 이동하십시오.http://www.tumuski.com/2008/05/javaScript-alert-cancel-button/

이 스크립트를 GreasemonKey에 설치 한 후에는 Alert 대화 상자 창에 취소 버튼이있어 JavaScript가 중지됩니다.

IE 11에서 테스트 됨] 웹 브라우저를 닫고 어떤 이유로 든 CTRL-ALT-DEL을 원하지 않는 경우 (내 경우에는 내 잘못된 JavaScript Infinite Alert Loop가 Citrix에서 실행중인 경우 마지막 세션이 자동으로 다시로드 될 것입니다. 내가 지울 수없는 캐시 메모리의 Ctrl-Alt-Del)

당신은 당신의 길을 버릴 수 있습니다 Alt-F4를 누르고 x를 스팸 (브라우저 창을 닫으려면).

이것은 정말 빠르게 작동합니다 ... Alt-F4는 경고 상자를 정말 빠르게 닫고 브라우저 상단의 X 버튼이 깜박입니다. 이것은 당신이 알림 사이에 닫을 수있는 아주 작은 시간을 제공합니다.

참고 : 여러 개의 탭이 열린 경우 화면 하단의 컨트롤 바의 아이콘에서 먼저 "모든 탭 메시지를 닫습니다"가 방해되므로 닫아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top