itsource

JavaScript에서 스크립트를 종료하려면 어떻게 해야 합니까?

mycopycode 2022. 9. 4. 21:30
반응형

JavaScript에서 스크립트를 종료하려면 어떻게 해야 합니까?

의 자바스크립트처럼 할 수 요?exit ★★★★★★★★★★★★★★★★★」die베스트 프로그래밍 프랙티스가 아닌 건 알지만 꼭 해야 해요.

"paramet" 함수는 일반적으로 프로그램 또는 스크립트를 종료하고 오류 메시지를 매개 변수로 표시합니다.예를 들어 php의 die(...)입니다.

die("sorry my fault, didn't mean to but now I am in byte nirvana")

JS에서는 다음과 같이 throw 키워드를 사용하여 오류를 시그널링합니다.

throw new Error();

이것은 간단하게 테스트할 수 있습니다.

var m = 100;
throw '';
var x = 100;

x
>>>undefined
m
>>>100

PHP의 .BTW에 상당하는 JavaScript를 호출합니다(감사합니다).

function exit( status ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Brett Zamir (http://brettz9.blogspot.com)
    // +      input by: Paul
    // +   bugfixed by: Hyam Singer (http://www.impact-computing.com/)
    // +   improved by: Philip Peterson
    // +   bugfixed by: Brett Zamir (http://brettz9.blogspot.com)
    // %        note 1: Should be considered expirimental. Please comment on this function.
    // *     example 1: exit();
    // *     returns 1: null

    var i;

    if (typeof status === 'string') {
        alert(status);
    }

    window.addEventListener('error', function (e) {e.preventDefault();e.stopPropagation();}, false);

    var handlers = [
        'copy', 'cut', 'paste',
        'beforeunload', 'blur', 'change', 'click', 'contextmenu', 'dblclick', 'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize', 'scroll',
        'DOMNodeInserted', 'DOMNodeRemoved', 'DOMNodeRemovedFromDocument', 'DOMNodeInsertedIntoDocument', 'DOMAttrModified', 'DOMCharacterDataModified', 'DOMElementNameChanged', 'DOMAttributeNameChanged', 'DOMActivate', 'DOMFocusIn', 'DOMFocusOut', 'online', 'offline', 'textInput',
        'abort', 'close', 'dragdrop', 'load', 'paint', 'reset', 'select', 'submit', 'unload'
    ];

    function stopPropagation (e) {
        e.stopPropagation();
        // e.preventDefault(); // Stop for the form controls, etc., too?
    }
    for (i=0; i < handlers.length; i++) {
        window.addEventListener(handlers[i], function (e) {stopPropagation(e);}, true);
    }

    if (window.stop) {
        window.stop();
    }

    throw '';
}

핸들이나.main절차인 기능합니다.

<script> 
function main()
{
//code

}
main();
</script>

때 할 수 .return.

오류가 발생해도 상관 없으면 다음과 같이 입력하십시오.

fail;

그러면 기본(글로벌) 코드가 진행되지 않습니다.디버깅/테스트의 일부 측면에 도움이 됩니다.

JS 또는 노드 스크립트를 종료하는 방법은 여러 가지가 있습니다.가장 관련성이 높은 것은 다음과 같습니다.

// This will never exit!
setInterval((function() {  
    return;
}), 5000);

// This will exit after 5 seconds, with signal 1
setTimeout((function() {  
    return process.exit(1);
}), 5000);

// This will also exit after 5 seconds, and print its (killed) PID
setTimeout((function() {  
    return process.kill(process.pid);
}), 5000);

// This will also exit after 5 seconds and create a core dump.
setTimeout((function() {  
    return process.abort();
}), 5000);

리플리케이션 중(실행 후)node 을 합니다..exit료합니니다다

debugger;실행을 중지할 JavaScript 코드에 키워드를 입력합니다.그런 다음 즐겨찾는 브라우저의 개발자 도구를 열고 페이지를 다시 로드합니다.이제 자동으로 일시 중지됩니다.도구의 [Sources]섹션을 엽니다.debugger;키워드가 강조 표시되어 스크립트 실행을 재개할 수 있습니다.

도움이 됐으면 좋겠어요.

자세한 것은 이쪽:

제 경우 를 사용하였습니다.

window.stop()는 현재 브라우징 컨텍스트에서 추가 리소스 로드를 중지합니다.이는 브라우저의 '정지' 버튼과 동일합니다.

스크립트가 실행되는 방법 때문에 이 메서드는 상위 문서의 로드를 중단할 수 없지만 이미지, 새 창 및 다른 로드 중인 오브젝트를 중지합니다.

사용방법: window.stop();
(소스)

JavaScript에는 다음과 같은 여러 가지 방법이 있습니다.

방법 1:

throw new Error("Something went badly wrong!");

방법 2:.

return;

방법 3:

return false;

방법 4:

new new

방법 5:

커스텀 기능의 사용법을 위의 방법으로 기입하고, 필요에 따라서 전화한다.

주의: 코드 실행을 일시 중지하는 경우 사용할 수 있습니다.

debugger; 

Javascript dev devtools에서 할 수 .ctrl+shift+jcltf+shift+p 입력해 주세요.disable javascript

위에서 언급한 가능한 옵션:

window.stop(); // equivalent to the 'stop' button in the browser
debugger; // debugs
for(;;); // crashes your browser
window.location.reload(); // reloads current page

페이지가 로드되어 크래시 또는 새로고침을 디버깅하지 않을 경우:

throw new Error();

모든 타임아웃을 추가로 클리어

var id = window.setTimeout(function() {}, 0);
while (id--) {
    window.clearTimeout(id);
}

DOM/XMLHttpRequest 중단

$.xhrPool = [];
$.xhrPool.abortAll = function() {
    $(this).each(function(i, jqXHR) { 
        jqXHR.abort();  
        $.xhrPool.splice(i, 1); 
    });
}
$.ajaxSetup({
    beforeSend: function(jqXHR) { $.xhrPool.push(jqXHR); },
    complete: function(jqXHR) {
        var i = $.xhrPool.indexOf(jqXHR);
        if (i > -1) $.xhrPool.splice(i, 1); 
    }
});

인라인을 포함모든 이벤트청취자 삭제

$("*").prop("onclick", null).off();

그러면 스크립트가 삭제되고 이벤트 없이 요소가 다시 생성됩니다.

$('script').remove();
$('*').each(function(){
    $(this).replaceWith($(this).clone());   
});

웹 페이지에서 jQuery를 사용할 수 없는 경우 소스코드를 콘솔에 복사하여 붙여넣습니다.

다른 것도 있을 수 있어댓글로 알려주세요.

이 질문에 대한 답변이 끝난 것 같습니다. 자세한 내용은 여기를 클릭하십시오.다음은 게시된 짧은 답변입니다.

throw new Error("Stop script");

브라우저를 사용하여 중단점을 추가할 수도 있습니다. 모든 브라우저가 비슷합니다. 사용하시는 브라우저에 대한 아래 정보를 확인하십시오.

Chrome 브레이크 포인트 정보는 여기를 클릭해 주세요.
Firefox 중단점 정보는 여기를 클릭하십시오.
탐색기 중단점 정보는
Safari 중단점에 대한 정보는 여기를 클릭하십시오.

만약 모든 Javascript의 실행을 한 페이지에서 강제 종료하는 방법을 찾고 있다면, 공식적으로 허가된 방법은 없을 것 같습니다.보안상의 위험이 될 수 있는 것 같습니다(솔직히 말하면 어떻게 해야 할지 생각나지 않습니다).때 "Javascript"만 하면 .return더(thereturn문장은 함수의 마지막 항목이고 함수가 값을 반환하지 않는 경우 옵션입니다.) 반환이 충분하지 않은 경우, 필요한 이유에 대해 질문을 더 자세히 수정하고 다른 솔루션을 제안할 수 있습니다.

실제로 대부분의 브라우저의 Javascript 인터프리터는 오류가 발생하면 현재 스크립트의 실행을 중지합니다.따라서 설정되지 않은 변수의 Atribute에 액세스하는 등의 작업을 수행할 수 있습니다.

function exit() {
    p.blah();
}

스크립트가 중단될 수 있습니다.하지만 그건 전혀 표준이 아니고, 정말 끔찍한 관행처럼 보이기 때문에 기대해서는 안 됩니다.

편집: Olafur에 비추어 볼 때 이것은 좋은 답이 아닐 수도 있습니다.단,die()그가 링크한 함수는 기본적으로 내 두 번째 단락을 구현한다. 즉, 오류를 발생시킨다.

" , 를 던지다. " ,

개념의 오용이지만 아마도 유일한 선택일 것이다.네, 모든 이벤트청취자를 리셋해야 합니다.이는 수용된 답변과 동일합니다.제 말이 맞다면 단일 입구가 필요할 수도 있습니다.

그 위에: 페이지가 송신되는 즉시 이메일로 보고되는 페이지가 필요합니다.예를 들어, Raven이나 Sentry를 사용하면 됩니다.하지만 그건 곧 잘못된 긍정을 낳는다는 뜻이죠이 경우 기본 핸들러를 업데이트하여 이러한 이벤트를 필터링하거나 Sentry 대시보드에서 무시로 설정해야 합니다.

window.stop();

페이지를 로드하는 동안에는 작동하지 않습니다.페이지의 디코딩도 정지합니다.따라서 javascript가 필요 없는 페이지를 사용자에게 제공하는 데 사용할 수 없습니다.

디버거

디버거를 연 상태에서만 실행을 중지합니다.효과는 좋지만 성과물은 아닙니다.

에러를 않고, 그 만으로, 으로 「」, 「」, 「」, 「」, 「」, 「」, 「」를 수 있습니다.window.onerror에 나타내는 것과 같이,

function exit(code) {
    const prevOnError = window.onerror
    window.onerror = () => {
        window.onerror = prevOnError
        return true
    }

    throw new Error(`Script termination with code ${code || 0}.`)
}

console.log("This message is logged.");
exit();
console.log("This message isn't logged.");

이 작은 함수는 PHP의 exit()를 모방하는 것에 매우 가깝습니다.다른 솔루션과 마찬가지로 아무것도 추가하지 마십시오.

function exit(Msg)
    {
    Msg=Msg?'*** '+Msg:'';
    if (Msg) alert(Msg);
    throw new Error();
    } // exit

스크립트에서 정의되지 않은 함수를 사용하면 "Uncatched ReferenceError"로 인해 스크립트가 중지됩니다.나는 코드를 따라 시도했고 처음 두 줄을 실행했다.

이게 대본을 멈추는 가장 좋은 방법인 것 같아요.다른 방법이 있으면 댓글 달아주세요.또 다른 가장 좋고 간단한 방법도 알고 싶습니다.그나저나 스크립트를 종료하기 위해 PHP와 같은 Javascript에 exit 또는 die inbuilt 함수가 없습니다.아는 사람이 있으면 알려주세요.

alert('Hello');

document.write('Hello User!!!');

die();  //Uncaught ReferenceError: die is not defined

alert('bye');

document.write('Bye User!!!');

iobroker를 사용하고 있기 때문에 스크립트를 쉽게 정지할 수 있습니다.

stopScript();

건 PHP를 PHP를 사용하세요.die()을 사용하다

function die(reason) {
    throw new Error(reason);
}

사용방법:

console.log("Hello");
die("Exiting script..."); // Kills script right here
console.log("World!");

위의 예에서는 "Hello"만 출력됩니다.

이 코드를 사용하여 실행을 중지합니다.

throw new FatalError("!! Stop JS !!");

콘솔 에러는 표시되지만, 저는 잘 동작합니다.

이 코드는 현재 창의 모든 JavaScript 실행을 중지합니다.

    for(;;);

console.log('READY!');

setTimeout(()=>{

  /* animation call */ 
  div.className = "anim";

  console.log('SET!');

  setTimeout(()=>{

    setTimeout(()=>{
      console.log('this code will never be executed');
    },1000);

    console.log('GO!');

    /* BOMB */
    for(;;);

    console.log('this code will never be executed');

  },1000);

},1000);
#div {
  position: fixed;
  height: 1rem; width: 1rem;
  left:   0rem; top:   0rem;
  transition: all 5s;
  background: red;
}
/* this <div> will never reached the right bottom corner */
#div.anim {
  left: calc(100vw - 1rem);
  top:  calc(100vh - 1rem);
}
<div id="div"></div>

오류 없이 스크립트 실행을 중지하려면 모든 스크립트를 함수에 포함시키고 실행할 수 있습니다.
를 들면, '하다' 입니다.

(function () {
    console.log('one');
    return;
    console.log('two');
})();

위의 스크립트는 1개만 기록합니다.

사용 전

  • 스크립트 자체의 외부에서 스크립트의 함수를 읽을 필요가 있는 경우, (통상) 동작하지 않는 것을 기억하십시오.이를 수행하려면 기존 변수 또는 개체를 사용해야 합니다(Windows 개체에 함수를 넣을 수 있습니다).
  • 위의 코드는 당신이 원하지 않는 것일 수 있습니다: 스크립트 전체를 함수에 넣으면 다른 결과가 발생할 수 있습니다(예를 들어, 이 경우 스크립트는 즉시 실행되며 Chrome에서 개발할 때 브라우저에서 해당 부분을 수정할 수 있는 방법은 없습니다.

다음 예시는 조건이 존재할 경우 스크립트를 종료하는 것입니다.SSE 클라이언트측 javascript에서 사용합니다.

<script src="sse-clint.js" host="https://sse.host" query='["q1,"q2"]' ></script>

JSON 구문 분석에서 바로 구문 분석할 수 없습니다.

if( ! SSE_HOST  ) throw new Error(['[!] SSE.js: ERR_NOHOST - finished !']);

...어쨌든 대략적인 생각은 다음과 같습니다.

if( error==true) throw new Error([ 'You have This error' ,  'At this file', 'At this line'  ]);

Javascript 스크립트가 종료/정지됩니다.

BOOL 조건을 작성하기만 하면 됩니다.여기서는 복잡한 코드가 필요 없습니다.

한번 true로 설정해도/또는 여러 번 설정해도 둘 다 하나의 솔루션 라인(복수가 아닌)을 얻을 수 있습니다.기본적으로 그렇게 단순합니다.

대부분의 경우 해당되지 않지만 브라우저에서 많은 비동기 스크립트를 실행하고 있으며 해킹으로 실행하고 있습니다.

window.reload();

모든 걸 멈추기 위해서요

콘솔에서 srow가 오류를 나타내므로 srow가 아닌 return 문을 사용합니다.그것을 하는 가장 좋은 방법은 상태를 확인하는 것이다

if(condition){
 return //whatever you want to return
}

콘솔에서 오류를 표시하는 대신 해당 행에서 프로그램 실행을 중지합니다.

언급URL : https://stackoverflow.com/questions/550574/how-to-terminate-the-script-in-javascript

반응형