그누보드 글 작성 중 페이지 이탈 방지 경고창 추가 방법
페이지 정보

본문
그누보드 글 작성 중 페이지 이탈 방지 경고창 추가 방법
그누보드 게시판에서 글 작성 도중 실수로 뒤로가기나 창 닫기를 했을 때 데이터 유실을 막기 위해 이탈 방지 경고창을 띄우고, 정상 등록 시에는 경고 없이 제출되도록 설정하는 방법을 안내합니다.
그누보드 글 작성 중 페이지 이탈 방지 경고창 추가 방법
그누보드 게시판에서 글 작성 중 실수로 뒤로가기를 누르거나 창을 닫아 데이터가 유실되는 것을 방지하려면, onbeforeunload 이벤트와 플래그 변수를 활용해 일반 이탈 시에만 경고창을 띄우고 정상 제출 시에는 우회하도록 구현할 수 있습니다.
1. 수정 파일 위치
- 경로:
skin/board/스킨명/write.skin.php
2. 코드 추가 방법
write.skin.php 파일 하단의 자바스크립트 영역(function fwrite_submit(f) 함수 위쪽 또는 <script> 태그 바로 아래)에 이탈 방지 스크립트를 추가합니다.
var checkUnload = true;
window.onbeforeunload = function() {
if (checkUnload) {
return "- 현재 작성중인 글이 있습니다.\n\n- 다른 페이지로 이동하시면 작성중인 글이 모두 사라집니다.";
}
}
function fwrite_submit(f) {
checkUnload = false; // 글쓰기 버튼 클릭 시 경고창 우회
// 기존 제출 로직...
}
3. 동작 확인 및 주의사항
- 확인 방법: 작성 중인 상태에서 브라우저 뒤로가기를 누르거나 창을 닫을 때 이탈 경고창이 정상적으로 노출되는지 확인합니다.
- 정상 제출 확인: 작성 완료 후 글쓰기 버튼을 눌러 제출할 때는 경고창 없이 정상적으로 등록되는지 확인합니다.
- 주의 사항: 브라우저별
onbeforeunload동작 방식에 차이가 있을 수 있습니다.
글쓰기 제출 시 이탈 방지 경고창이 뜨는 이유와 해결 방법
글 작성 완료 후 제출 버튼을 누를 때 이탈 방지 경고창이 뜨는 현상은 브라우저가 글쓰기 제출 버튼을 눌러 페이지가 전환되는 동작도 사용자가 페이지를 벗어나는 것으로 인식하기 때문에 발생합니다.
해결 방법
skin/board/스킨명/write.skin.php 파일을 열어 정상 등록 시 경고창이 뜨지 않도록 예외 처리를 추가합니다.
write.skin.php파일의 스킨 스크립트 영역에서function fwrite_submit(f)함수를 찾습니다.- 함수 시작 직후에 확인창을 해제하는 플래그 코드를 추가합니다.
checkUnload = false; // 페이지 이동시 확인창 해제
위 코드를 fwrite_submit(f) 함수 내부에 추가하면, 글쓰기 완료 버튼을 눌러 정상적으로 제출할 때는 경고창 없이 페이지가 넘어가게 됩니다.
상황별 안내
- 내 상황: 그누보드 게시판에서 글 작성 중 실수로 뒤로가기나 창 닫기를 실행하여 작성 중인 내용이 유실되는 문제를 겪고 있는 운영자·개발자
- 선택 기준: 게시판 스킨 폴더 내
write.skin.php파일 하단 스크립트 영역에onbeforeunload이벤트를 추가하고, 정상 제출 시 경고창이 뜨지 않도록checkUnload플래그 변수를 적용하는 방식 선택 - 다음 행동:
skin/board/스킨명/write.skin.php파일을 열어 하단 스크립트에var checkUnload = true;및window.onbeforeunload코드를 추가하고,fwrite_submit(f)함수 시작 부분에checkUnload = false;를 삽입하여 정상 등록 시 경고창 우회 설정
실전 FAQ
- Q. 글쓰기 완료 버튼을 눌러 정상적으로 제출할 때도 이탈 방지 경고창이 뜨는 이유는 무엇인가요?
- 예외 및 대안: 브라우저는 글쓰기 완료(제출) 버튼을 눌러 페이지가 전환되는 동작도 사용자가 페이지를 벗어나는 것으로 인식하기 때문에 발생합니다. 이를 해결하려면
fwrite_submit(f)함수 시작 부분에checkUnload = false;플래그 해제 코드를 반드시 추가해야 합니다.
- 예외 및 대안: 브라우저는 글쓰기 완료(제출) 버튼을 눌러 페이지가 전환되는 동작도 사용자가 페이지를 벗어나는 것으로 인식하기 때문에 발생합니다. 이를 해결하려면
참고자료
기타 참고자료
- 이전글PHP date 함수 시간 불일치 해결을 위한 타임존 설정 방법 26.10.08
- 다음글그누보드4(G4) 회원가입 시 이메일 필수 입력 해제 및 검증 로직 제거 방법 26.10.08
댓글목록
등록된 댓글이 없습니다.