2014-10-13 2 views
-2

setTimeOut 함수를 사용하는 데 어려움을 겪고 있습니다. 먼저 코드를 표시해 보겠습니다.setTimeOut 함수가 예상대로 작동하지 않습니다.

여기 내 코드입니다 : -

function submitform(loginUrl, username, password) { 
    try { 
     loc = new String(window.location); 
     document.forms.frm_login.action = junctionUrl; 
     document.forms.frm_login.username.value = username; 
     document.forms.frm_login.password.value = password; 
     document.forms.frm_login.submit(); 
     setTimeout(gotoHomePage,4000); 
    } 
    catch (e) { 
    alert(e.message +"submit form"); 
    } 

} 

    function gotoHomePage() 
    { 
     alert("test"); 
     var url = "test.aspx"; 
     window.location=url; 
    } 

그러나 여기 gotoHomePage 기능이 전혀 지정된 사초 후 트리거되지 않습니다.

내가 여기서 잘못하고있는 것. 제안 해주십시오.

도움이 될 것입니다.

감사

+0

setTimeout (gotoHomePage, 4000)을 배치 할 수 있습니까? document.forms.frm_login.submit(); 시도해 볼까? – AAhad

+0

시계가 언제 시작 되었습니까? 이 스크립트는 문서 준비 이벤트 이후에 실행되고 있습니까, 아니면 페이지가 구문 분석 될 때 시작되는 시계입니까? – Wayne

+0

나는 그것을 시도 할 것입니다,하지만 당신은 제게 왜 감사해야할까요? 감사합니다 –

답변

0

양식 제출은 현재 페이지를 보내고 결과 페이지 unload로 리디렉션됩니다. 따라서 타이머는 틱하지 않습니다.

아약스를 사용하거나 양식의 타겟을 iframe에 설정하십시오. 이렇게하면 현재 페이지가 언로드되지 않으므로 타이머가 시간 초과 기능을 실행합니다.

<form target="form_output"> 
    <!-- other inputs --> 
</form> 

<iframe name="form_output"></iframe> 
관련 문제