Onload 한번만 실행할 수 있는 아이디어나 소스 구합니다. 정보
Onload 한번만 실행할 수 있는 아이디어나 소스 구합니다.본문
<body .......
<? if (!$member['mb_id']) { ?> Onload="top.xxx.Stopxx();" <? } else { ?>Onload="top.xxx.Startxx();"<? } ?>
>
body 구문에 위와 같은 식으로 로그인을 했을 때 xxx 프레임에 이벤트를 실행하게 했습니다.
로그아웃이면 실행을 중지합니다.
회원에게만 보이게 하기 위한 조치였습니다.
그런데 문제는 로그인 후에 페이지 이동을 하면 또 오로드시켜서 실행을 한다는 것입니다.
사용자 버튼이 있어서 사용자가 이벤트를 중지해도 다시 온로드를 시키는데 좋은 해결 방법이 있으면 감사하겠습니다.
질문이 난해한가요...?!
온로드를 한번만 실행하게만 할 수 있다면 어떤 답변도 좋습니다.
참고로 창띄우고 하루동안 창닫기 소스는 아닙니다.
플레이어 재생관련 소스입니다.
댓글 전체
로그인 후에 페이지 이동을 하면 또 오로드시켜서 ...."
매 페이지마다 다 이 onLoad 이벤트 핸들러가 있다는 얘긴인가요?
처음부터 설명이 있으면 좋겠습니다.
매 페이지마다 다 이 onLoad 이벤트 핸들러가 있다는 얘긴인가요?
처음부터 설명이 있으면 좋겠습니다.
헤더서브 파일에 바디 구문에 넣었기 때문에 어느 페이지를 가던지 같은 소스를 실행하게 됩니다.
이 구문은 어느 경로로 접속이 되어도 실행이 되어져야 하기에 헤더 서브 파일에서 이벤트를 시켜습니다.
처음 부터 설명하라면 음,,,
우선 눈에 안보이는 프레임(name=xxx)이 하나 더 있습니다.
메인 프레임(name=main) 헤더 서브 파일 바디 구문에서
로그인을 하면 Onload를 이용해서 이벤트를 xxx 프레임으로 실행하게 하고
로그아웃하면 xxx 프레임에 이벤트를 중지합니다.
문제는 헤더 서브 파일의 바디 구문에 넣었기 때문에
로그인 후에는 사용자가 임으로 정지를 시키고 나서 다른 페이지로 가게되면
다시 Onload 이벤트를 실행한다는 것입니다.
이전 질문의 설명에 착오가 있었는데 사용자가 정지를 안시키고 이동하면 상관이 없습니다.
실행중에는 어느페이지를 가던지 더 이상 실행 명령이 안먹히게 되어 있습니다.
다른 차원에서 말씀드리면
바디에 온로드라는 이벤트가 아닌 버튼 식에서는
이벤트 실행 중에 정지 버튼을 누를고 페이지 이동을 하면 정지 상태이고
이벤트 정지 중에 실행 버튼을 누르고 페이지 이동을 하면 실행 샅태로 되어서
페이지 이동에 따라서 한번 실행한 것에 대한 명령을 계속 수행을 합니다.
페이지 이동을 해도
실행 상태에서 더 이상의 실행 명령이 안먹히고
정지 상태에서 더 이상의 정지 명령을 안 먹힙니다.
반대로 정지 상태에서 실행버튼을 누르면 먹힙니다.
즉 사용자가 임으로 정지 버튼을 누르고 페이지 이동을 하면 계속 유지가 됩니다
그런데 로그인을 하고 나서 바디에 온로드 실행 이벤트가 페이지 이동 때마다 나타나기때문에 정지를 해도 실행을 하게 되는 것입니다.
이것을 이벤트 정지중에 페이지 이동시 온로드 이벤트의 실행이 안먹히게 했으면 합니다.
아니면 최초 접속시 한번만 실행하고 싶습니다.
그래도 어려운가요?
참고로 로그아웃 중에는 바디 구문에서 오로드에서 정지 명령만 내릴 뿐 보여지는 화면 상에 사용자가 실행할 수 있는 버튼이 없기에 항상 정지 상태로 페이지 이동을 해도 정지 이벤트만 수행하기에 상관이 없습니다.
로그인을 하면 정지 버튼이 보여져서 사용자가 정지 버튼을 누르고 이동을 하면 로그인시 실행 이벤트가 작동해서 문제이입니다.
간단하게 온로드만 안주면 상관은 없지만 로그인을 하면 자동 실행을 하게 하고 싶어서 그렇습니다.
쓰고 나니 장황하네요. 흐미...!!!
이 구문은 어느 경로로 접속이 되어도 실행이 되어져야 하기에 헤더 서브 파일에서 이벤트를 시켜습니다.
처음 부터 설명하라면 음,,,
우선 눈에 안보이는 프레임(name=xxx)이 하나 더 있습니다.
메인 프레임(name=main) 헤더 서브 파일 바디 구문에서
로그인을 하면 Onload를 이용해서 이벤트를 xxx 프레임으로 실행하게 하고
로그아웃하면 xxx 프레임에 이벤트를 중지합니다.
문제는 헤더 서브 파일의 바디 구문에 넣었기 때문에
로그인 후에는 사용자가 임으로 정지를 시키고 나서 다른 페이지로 가게되면
다시 Onload 이벤트를 실행한다는 것입니다.
이전 질문의 설명에 착오가 있었는데 사용자가 정지를 안시키고 이동하면 상관이 없습니다.
실행중에는 어느페이지를 가던지 더 이상 실행 명령이 안먹히게 되어 있습니다.
다른 차원에서 말씀드리면
바디에 온로드라는 이벤트가 아닌 버튼 식에서는
이벤트 실행 중에 정지 버튼을 누를고 페이지 이동을 하면 정지 상태이고
이벤트 정지 중에 실행 버튼을 누르고 페이지 이동을 하면 실행 샅태로 되어서
페이지 이동에 따라서 한번 실행한 것에 대한 명령을 계속 수행을 합니다.
페이지 이동을 해도
실행 상태에서 더 이상의 실행 명령이 안먹히고
정지 상태에서 더 이상의 정지 명령을 안 먹힙니다.
반대로 정지 상태에서 실행버튼을 누르면 먹힙니다.
즉 사용자가 임으로 정지 버튼을 누르고 페이지 이동을 하면 계속 유지가 됩니다
그런데 로그인을 하고 나서 바디에 온로드 실행 이벤트가 페이지 이동 때마다 나타나기때문에 정지를 해도 실행을 하게 되는 것입니다.
이것을 이벤트 정지중에 페이지 이동시 온로드 이벤트의 실행이 안먹히게 했으면 합니다.
아니면 최초 접속시 한번만 실행하고 싶습니다.
그래도 어려운가요?
참고로 로그아웃 중에는 바디 구문에서 오로드에서 정지 명령만 내릴 뿐 보여지는 화면 상에 사용자가 실행할 수 있는 버튼이 없기에 항상 정지 상태로 페이지 이동을 해도 정지 이벤트만 수행하기에 상관이 없습니다.
로그인을 하면 정지 버튼이 보여져서 사용자가 정지 버튼을 누르고 이동을 하면 로그인시 실행 이벤트가 작동해서 문제이입니다.
간단하게 온로드만 안주면 상관은 없지만 로그인을 하면 자동 실행을 하게 하고 싶어서 그렇습니다.
쓰고 나니 장황하네요. 흐미...!!!
단한번만 실행을 하시구 싶으시다면..
로그인 체크 페이지에서 실행하시면 안되나요~
로그인 확인 됬으면 실행하시구 그전페이지로 이동하시면 되구요..
그리구 재생관련하여 유저에게 쿠키값으로 플레이유무를 저장하신다면..
쿠키저장하고 플레이 하시지 마시고.
플레이 하시구 쿠키저장 하시기 바랍니다..ㅎㅎㅎ
로그인 체크 페이지에서 실행하시면 안되나요~
로그인 확인 됬으면 실행하시구 그전페이지로 이동하시면 되구요..
그리구 재생관련하여 유저에게 쿠키값으로 플레이유무를 저장하신다면..
쿠키저장하고 플레이 하시지 마시고.
플레이 하시구 쿠키저장 하시기 바랍니다..ㅎㅎㅎ