그누보드 글쓰기 페이지 이탈 방지 확인창 구현 방법
페이지 정보

본문
그누보드 글쓰기 페이지 이탈 방지 확인창 구현 방법
그누보드 게시판에서 글 작성 중 실수로 페이지를 이탈하여 내용이 삭제되는 것을 방지하기 위해 onbeforeunload 이벤트를 활용하는 방법을 알아봅니다.
write.skin.php 이탈 방지 코드 추가 위치
그누보드 글쓰기 페이지에서 페이지 이탈 시 확인창을 띄우려면 게시판 스킨 폴더 내의 write.skin.php 파일 하단 스크립트 영역에 코드를 추가해야 합니다.
1. 스크립트 추가 위치
write.skin.php 파일 하단의 자바스크립트 영역(이미 존재하는 <script> 태그 사이)에 다음 코드를 추가합니다. function fwrite_submit(f) 함수 위쪽 아무 곳이나 위치시키면 됩니다.
var checkUnload = true;
window.onbeforeunload = function() {
if (checkUnload) return "페이지를 벗어나면 작성중인 글은 없어집니다.";
}
2. 글 제출 시 확인창 해제
정상적으로 글을 등록할 때는 확인창이 뜨지 않도록, 기존 fwrite_submit(f) 함수 바로 아래에 아래 코드를 추가합니다.
checkUnload = false; // 페이지 이동시 확인창 해제
글쓰기 완료 시 이탈 방지 확인창 예외 처리 방법
글 작성 완료 후 제출 버튼을 누를 때 이탈 방지 경고창이 뜨는 현상은 스크립트가 글쓰기 버튼을 통한 제출 동작도 페이지를 벗어나는 것으로 인식하기 때문에 발생합니다. 이를 해결하려면 fwrite_submit 함수 내부에 확인창을 해제하는 플래그 코드를 추가해야 합니다.
수정 방법
write.skin.php파일의 스킨 스크립트 영역에서function fwrite_submit(f)함수를 찾습니다.- 함수 시작 직후에 아래의 플래그 해제 코드를 한 줄 추가합니다.
checkUnload = false; // 페이지 이동시 확인창 해제
이 설정을 적용하면 정상적으로 글쓰기 버튼을 눌러 제출할 때는 확인창 없이 경고 없이 글이 등록됩니다.
그누보드 글쓰기 페이지 이탈 방지 확인창 구현 방법
글 작성 도중 실수로 페이지를 벗어나 데이터가 유실되는 것을 방지하기 위해 write.skin.php 파일에 자바스크립트 이벤트를 추가하여 확인창을 띄우고, 정상 제출 시에는 확인창이 뜨지 않도록 플래그를 해제하는 코드를 적용할 수 있습니다.
수정 위치 및 절차
- 수정 파일:
skin/board/스킨명/write.skin.php - 이탈 방지 스크립트 추가
- 파일 하단의 스크립트 영역 제일 윗부분에 아래 코드를 추가합니다.
var checkUnload = true; window.onbeforeunload = function() { if(checkUnload) return "페이지를 벗어나면 작성중인 글은 없어집니다."; } - 제출 시 확인창 해제 로직 추가
- 기존 스크립트 내용 중
function fwrite_submit(f)함수 시작 부분을 찾아 바로 아래에 한 줄을 추가합니다.
checkUnload = false; // 페이지 이동시 확인창 해제 - 기존 스크립트 내용 중
주의 사항 및 확인
- 모든 브라우저에서의 완벽한 호환성 여부에는 차이가 있을 수 있으므로 실제 운영 환경에서 테스트가 필요합니다.
상황별 판단 가이드
- 내 상황: 그누보드 글 작성 중 실수로 페이지를 이탈해 데이터가 유실되는 것을 방지하고 싶음
- 선택 기준: 게시판 스킨 파일(
write.skin.php) 하단 스크립트 영역에 이탈 방지 자바스크립트(onbeforeunload) 추가 및 정상 제출 시 확인창 해제 플래그 적용 - 다음 행동:
skin/board/스킨명/write.skin.php파일을 열어 하단 스크립트에checkUnload변수와window.onbeforeunload코드를 추가하고,fwrite_submit(f)함수 내부에checkUnload = false;를 추가하여 정상 등록 시 경고창이 뜨지 않도록 설정
실전 FAQ
Q. 글쓰기 완료 버튼을 눌러 정상적으로 제출할 때도 이탈 방지 확인창이 뜨는 이유는 무엇인가요?
- 예외 및 대안: 브라우저는 글쓰기 완료(제출) 버튼을 눌러 페이지가 전환되는 동작도 사용자가 페이지를 벗어나는 것으로 인식하기 때문에 발생합니다. 이를 해결하려면
fwrite_submit(f)함수 시작 부분에checkUnload = false;플래그 해제 코드를 반드시 추가해야 합니다.
참고자료
기타 참고자료
- 이전글그누보드 게시판 조회수 증가 로직 커스터마이징 (고정값 또는 랜덤) 26.09.25
- 다음글그누보드 회원 데이터 완전 삭제(Hard Delete)를 위한 로직 수정 방법 26.09.24
댓글목록
등록된 댓글이 없습니다.