Ajax 응답을 통해 반환된 함수 실행 귀하의 문의는 Ajax 응답 내에서 반환된 JavaScript 함수를 호출하는 기능에 관한 것입니다. 명확히 하자면, Ajax 콜백 직후에 함수를 호출하려는 것이 아니라 나중에 페이지 수명 동안 함수에 액세스하려는 것입니다. 대답은 '예'입니다. 특정 조건이 충족된다면 페이지가 존재하는 동안 언제든지 새로 획득한 코드를 실행할 수 있습니다. 조건: 구문 정확성: 반환된 JavaScript 코드는 구문적으로 유효해야 합니다. 실행 요구 사항: DIV의 블록이 있는 경우 브라우저는 함수의 존재를 인식하기 위해 선언 코드를 실행해야 합니다. 이는 eval() 메소드를 통해 달성할 수 있습니다.</li> </ul> <p><strong>예:</strong></p> <pre><code class="html"><div id="div1"> <script id="sc1" type="text/javascript"> function go() { alert("GO!") } // hypothetical Ajax callback var newsc = '<script id="sc1" type="text/javascript">' + 'function go() { alert("GO!") }' + ''; var e = document.getElementById('div1'); e.innerHTML = newsc; eval(document.getElementById('sc1').innerHTML); 이 예에서는 Ajax를 사용하지 않지만 개념을 보여줍니다. eval() 메소드는 새 함수를 효과적으로 선언하여 페이지 전체 기간 동안 호출할 수 있도록 합니다. 참고: Ajax 호출의 경우 별도의 파일에 함수를 외부화하지 않는 것이 좋습니다. 이러한 접근 방식은 잠재적인 문제로 이어질 수 있으므로 반복될 가능성이 높습니다. 브라우저 간 호환성도 고려할 수 있으며, 이 경우 krosenvold에서 제안한 프로토타입 접근 방식이 실행 가능한 옵션입니다.