BOARD

팁·활용

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 29회 작성일 26-09-25 15:13

본문

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

그누보드 게시판에서 글 작성 중 실수로 페이지를 이탈하여 내용이 삭제되는 것을 방지하기 위해 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 함수 내부에 확인창을 해제하는 플래그 코드를 추가해야 합니다.

수정 방법

  1. write.skin.php 파일의 스킨 스크립트 영역에서 function fwrite_submit(f) 함수를 찾습니다.
  2. 함수 시작 직후에 아래의 플래그 해제 코드를 한 줄 추가합니다.
checkUnload = false; // 페이지 이동시 확인창 해제

이 설정을 적용하면 정상적으로 글쓰기 버튼을 눌러 제출할 때는 확인창 없이 경고 없이 글이 등록됩니다.

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

글 작성 도중 실수로 페이지를 벗어나 데이터가 유실되는 것을 방지하기 위해 write.skin.php 파일에 자바스크립트 이벤트를 추가하여 확인창을 띄우고, 정상 제출 시에는 확인창이 뜨지 않도록 플래그를 해제하는 코드를 적용할 수 있습니다.

수정 위치 및 절차

  1. 수정 파일: skin/board/스킨명/write.skin.php
  2. 이탈 방지 스크립트 추가
    • 파일 하단의 스크립트 영역 제일 윗부분에 아래 코드를 추가합니다.
    var checkUnload = true;
    window.onbeforeunload = function() {
    if(checkUnload) return "페이지를 벗어나면 작성중인 글은 없어집니다.";
    }
  3. 제출 시 확인창 해제 로직 추가
    • 기존 스크립트 내용 중 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; 플래그 해제 코드를 반드시 추가해야 합니다.

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.