write_update.skin 에서...

write_update.skin 에서...

QA

write_update.skin 에서...

본문

<?php
if (!defined('_GNUBOARD_')) {
exit;
}

alert('접수되였습니다.', G5_URL);
?>

 

확인을 눌러야만 메인으로 돌아가는데 일정한 시간이 지난후 확인을 클릭안해도 저절로 넘어가게 할수 없을까요? 

 

고수님들 부탁드립니다....

이 질문에 댓글 쓰기 :

답변 5

저도 잘 알지는 못하여 틀릴수도 있지만 도움되실까 답변 드려봅니다.

브라우저에서 경고창을 띄우는건 php가 하는 일이 아니라 php 함수를 통해 javascript 소스코드를 삽입해 사용자의 브라우저가 그것을 읽고 경고창을 띄우도록 하는 원리일 겁니다.

그리고 브라우저를 다른 페이지로 이동시키는 것 역시도 javascript 를 통해 브라우저를 제어해야 하는 것이죠. Browser Object Model(BOM)

그러면 경고창을 띄운 이후에 브라우저가 시간을 체크해서 다른 URL로 이동하도록 자바스크립트를 작성해야 한다는 말이되는데요.


<javascript>
경고창();
일정시간 지나면 화면이동();
</javascript>


그런데 이 경고창 alert(); 이 조금 특이한 성질을 가지고 있습니다.
그건 한 번 실행이 되면 [확인]이 눌리기 전에는 그 다음의 소스코드를 읽지 않는다는 겁니다. 
즉, 경고창이 뜬 시점에서 브라우저의 시간은 정지한다.
[확인] 버튼을 누르지 않으면 브라우저의 시간은 멈추기 때문에
그 다음줄에 페이지를 이동시켜줄
일정시간 지나면 화면이동();
이 실행되지 않습니다.

조심스럽지만, 그래서 제 생각에는 
alert() 이후에 자동으로 페이지를 이동시키는 기능은 불가능할 것으로 보이고요.
대안으로 <?php alert('접수되였습니다.', G5_URL); ?> 이 코드를 삭제하고, 화면에 접수되었다는 텍스트를 뿌린 다음 window가 load된 시점부터 특정 초가 지났을 시(setTimeout)에 window.location.href 자바스크립트 코드를 통해 페이지를 이동하는 방법은 어떨까 말씀드려봅니다.

일정한 시간이 지난후 <--이게 이상하지않은가요?

접수처리 했으면 바로 처리되었다고 나오면 될텐데 뭐하러 일정 시간을??

그리고 무엇보다 경고창을 띄우고 확인버튼 클릭 안하는 방법은 없죠

처리화일에서 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위치 적당히 조정

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,525 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT