2014-04-16 4 views
0

저는 JavaScript에서 새로운 것이므로 문제가 발생했습니다 : jsp 페이지의 단추를 통해 Action을 호출하는 메소드가 있습니다.onload 이벤트를 사용하여 무한 루프를 피하십시오.

버튼 이벤트를 사용하지 않고도 내 JSP 페이지를로드 한 직후에이 액션을 실행하고 싶습니다.

JSP 본문에서 onload() 이벤트를 사용하려고합니다. 이것은로드 후 액션을 실행하지만, 페이지를 반복해서로드하기 때문에 무한 루프에 머물러 있습니다.

<script language="JavaScript" type="text/javascript"> 
    function send() 
    { 
     document.forms['thisForm'].submit(); 
    } 
</script  
.... 
<body onload="send()"> 

<html:form action="/something/foo.do?method=methodFoo" method="post"> 

어쨌든이 무한 루프를 피할 수 있습니까? 감사합니다.

+0

페이지가로드 될 때마다 양식을 제출하지 않는 코드를 리팩터링하십시오. –

+0

'submit()'처럼 들리면 몸이 다시로드되어야합니다. 그밖에 무한 루프가있을 수 있습니까? – mareoraft

+1

@mareoraft *는 *를 야기해야합니다. 양식을 제출하면 브라우저가 요청을 보냅니다. 'return false'가 브라우저를 새로 고치지 않는 한 요청입니다. 브라우저가 새로 고침되어'send()'와 같은 것을 다시 보게됩니다 ... –

답변

0

양식을 제출하지 않고 AJAX을 시도하여 작업을 실행할 수 있습니다.

+0

내가 현재 작업하고있는 프로젝트의 현재 환경에서 AJAX를 사용할 수 없습니다 :/ – user2171763

+0

그게 유일한 방법입니다. 코드를 리팩토링하여 'submit()'이없는 다른 페이지로 다시 이동할 수 있습니다. –

0

는이 문제를 해결하기 위해 잠재적 인 여러 가지 방법이 있습니다,하지만 난 내가 제일 좋아하는 일부터 시작됩니다

BODY onLoad="window.location.href='EXAMPLE.html';" onUnload="send();" 

여기에서 발생하면가 맨 처음에하는 일이 새로운 당신을 통과 점이다 웹 페이지 ("EXAMPLE.html")가 있지만 종료 할 때 JavaScript를 실행해야합니다. 이렇게하면 무한 루프로 들어갈 수 없습니다.

또 다른 방법 : 그것은 당신의 명령을 실행 한 후 창을 닫으려고합니다 이것으로

BODY onLoad="send();window.close();" 

. window.close 명령은 사용하는 브라우저에 따라 다르게 동작 할 수 있기 때문에 거의 닫혀 야합니다. 개인을 닫으려면 거의 항상 동의해야합니다. 그러나 그것은 당신을 위해 일할 수도 있습니다.