코드로 실수하고 JavaScript에서 무한 루프를 유발하고 Alert ()를 계속 호출하면 루프를 중지 할 방법이 있습니까?
-
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에서 할 수있는 것 같습니다.
- Ctrl을 보유하십시오
- 입력하십시오
- F4를 한 번 누릅니다
블로그 게시물에 따르면 모든 경우에도 효과가 없으며 여기에 자세한 정보가 있습니다. puremango.co.uk
Chrome을 사용하면 추가 경보가 표시되는 것을 방지 할 수 있습니다.
이 문제를 해결하기 위해 Firefox 확장을 작성했습니다.
안 돼요. 좋은 점은 대부분의 브라우저에는 무한 재귀 보호가 있지만 이는 오프 토피입니다.
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 버튼이 깜박입니다. 이것은 당신이 알림 사이에 닫을 수있는 아주 작은 시간을 제공합니다.
참고 : 여러 개의 탭이 열린 경우 화면 하단의 컨트롤 바의 아이콘에서 먼저 "모든 탭 메시지를 닫습니다"가 방해되므로 닫아야합니다.