write_update.skin 에서...
본문
<?php
if (!defined('_GNUBOARD_')) {
exit;
}
alert('접수되였습니다.', G5_URL);
?>
확인을 눌러야만 메인으로 돌아가는데 일정한 시간이 지난후 확인을 클릭안해도 저절로 넘어가게 할수 없을까요?
고수님들 부탁드립니다....
답변 5
저도 잘 알지는 못하여 틀릴수도 있지만 도움되실까 답변 드려봅니다.
브라우저에서 경고창을 띄우는건 php가 하는 일이 아니라 php 함수를 통해 javascript 소스코드를 삽입해 사용자의 브라우저가 그것을 읽고 경고창을 띄우도록 하는 원리일 겁니다.
그리고 브라우저를 다른 페이지로 이동시키는 것 역시도 javascript 를 통해 브라우저를 제어해야 하는 것이죠. Browser Object Model(BOM)
그러면 경고창을 띄운 이후에 브라우저가 시간을 체크해서 다른 URL로 이동하도록 자바스크립트를 작성해야 한다는 말이되는데요.
그런데 이 경고창 alert(); 이 조금 특이한 성질을 가지고 있습니다.
그건 한 번 실행이 되면 [확인]이 눌리기 전에는 그 다음의 소스코드를 읽지 않는다는 겁니다.
즉, 경고창이 뜬 시점에서 브라우저의 시간은 정지한다.
[확인] 버튼을 누르지 않으면 브라우저의 시간은 멈추기 때문에
그 다음줄에 페이지를 이동시켜줄
이 실행되지 않습니다.
조심스럽지만, 그래서 제 생각에는
alert() 이후에 자동으로 페이지를 이동시키는 기능은 불가능할 것으로 보이고요.
대안으로 <?php alert('접수되였습니다.', G5_URL); ?> 이 코드를 삭제하고, 화면에 접수되었다는 텍스트를 뿌린 다음 window가 load된 시점부터 특정 초가 지났을 시(setTimeout)에 window.location.href 자바스크립트 코드를 통해 페이지를 이동하는 방법은 어떨까 말씀드려봅니다. !-->
브라우저에서 경고창을 띄우는건 php가 하는 일이 아니라 php 함수를 통해 javascript 소스코드를 삽입해 사용자의 브라우저가 그것을 읽고 경고창을 띄우도록 하는 원리일 겁니다.
그리고 브라우저를 다른 페이지로 이동시키는 것 역시도 javascript 를 통해 브라우저를 제어해야 하는 것이죠. Browser Object Model(BOM)
그러면 경고창을 띄운 이후에 브라우저가 시간을 체크해서 다른 URL로 이동하도록 자바스크립트를 작성해야 한다는 말이되는데요.
<javascript>
경고창();
일정시간 지나면 화면이동();
</javascript>
그런데 이 경고창 alert(); 이 조금 특이한 성질을 가지고 있습니다.
그건 한 번 실행이 되면 [확인]이 눌리기 전에는 그 다음의 소스코드를 읽지 않는다는 겁니다.
즉, 경고창이 뜬 시점에서 브라우저의 시간은 정지한다.
[확인] 버튼을 누르지 않으면 브라우저의 시간은 멈추기 때문에
그 다음줄에 페이지를 이동시켜줄
일정시간 지나면 화면이동();
조심스럽지만, 그래서 제 생각에는
alert() 이후에 자동으로 페이지를 이동시키는 기능은 불가능할 것으로 보이고요.
대안으로 <?php alert('접수되였습니다.', G5_URL); ?> 이 코드를 삭제하고, 화면에 접수되었다는 텍스트를 뿌린 다음 window가 load된 시점부터 특정 초가 지났을 시(setTimeout)에 window.location.href 자바스크립트 코드를 통해 페이지를 이동하는 방법은 어떨까 말씀드려봅니다. !-->
alert은 제어가 불가능하니 그냥 텍스트로 뿌려준 후 script를 사용해서 페이지이동 시켜주시는게 좋습니다
php에 타임아웃이나 셋인터벌같은 기능찾아서 goto_url 로 넘겨버리면 될듯
일정한 시간이 지난후 <--이게 이상하지않은가요?
접수처리 했으면 바로 처리되었다고 나오면 될텐데 뭐하러 일정 시간을??
그리고 무엇보다 경고창을 띄우고 확인버튼 클릭 안하는 방법은 없죠
처리화일에서 alert 지우고 마지막부분에 아래처럼 만드세요
~~
?>
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
</head>
<body>
<div style='text-align:center;'><h3>접수되엇습니다</h3><div>
<script>
setTimeout(1000, functuin(){ location.href="<?=G5_URL?>"; });
</script>
</body>
</html>
div위치 적당히 조정
//alert('접수되였습니다.', G5_URL);
goto_url(G5_URL);
답변을 작성하시기 전에 로그인 해주세요.