2015-01-29 4 views
-1

jQuery를 사용하여 카운트 다운 타이머를 사용한 다음 특정 페이지로 리디렉션합니다. 사용자가 링크 (내 경우에는 원)를 터치하면 다른 페이지로 리디렉션됩니다.javascript를 사용하여 setTimeout 및 리디렉션

이것은 내 코드입니다. 5 초 후에 페이지를 리디렉션하려면 어떻게합니까?

//Some API call 
success: function(response){ 
    console.log("Server response: ", response.redirect); 
    $('#cmx_portal_oauth_welcome_dialog').popup("open"); // Opening something! 
    $('.redirect').attr('href',response.redirect); //Response.redirect contains my forwarding URL. 
} 
setTimeout(window.location.replace(response.redirect), 5000); 

setTimeout은 window.location.replace (response.redirect)에서 잘 작동합니까?

+0

왜 그런지는 알 수 없습니다 ... 어쨌든 시간 초과를 설정하는 다른 방법은 없습니다. – rioc0719

+1

그래서 코드가 작동하지 않습니까? – ochi

+0

크롬은 클릭/버튼 이벤트가 아닌 모든 리디렉션을 차단하기 때문에이 질문을한다고 가정합니다. 그것은 직접 호출 (setTimeout) 작동하지 않을지 모르겠다 – Dylanthepiguy

답변

4

setTimeout()은 n 초 후에 실행되는 첫 번째 매개 변수로 함수를 사용합니다. 작동 여부 :

setTimeout(function() { 
    window.location.replace(response.redirect); 
}, 5000); 
+0

맞습니다.'function() {...} '이 없으면 즉시 실행됩니다. [여기에 그 예가있다] (http://jsfiddle.net/0boLeezj/). –

+0

@SpencerWieczorek보기가 어렵지만 여기에 수정 된 내용이 있습니다. http://jsfiddle.net/0boLeezj/2/ – Pluto

0

거의 맞습니다. setTimeout은 eval 된 문자 또는 함수를 취합니다. 이 함수를 사용하지 않으려면 코드를 따옴표로 묶어야합니다.

setTimeout('window.location.replace(response.redirect)', 5000); 
+0

MDN은 문자열 사용을 권장하지 않습니다. https://developer.mozilla.org/en-US/ docs/Web/API/WindowTimers.setTimeout – Pluto

관련 문제