window.navigationHelper = { preventBackNavigation: function() { // 현재 상태를 히스토리에 추가 history.pushState(null, null, location.href); // popstate 이벤트 리스너 추가 window.addEventListener('popstate', function(event) { // 뒤로가기 시도 시 다시 현재 페이지로 이동 history.pushState(null, null, location.href); }); }, allowBackNavigation: function() { // popstate 이벤트 리스너 제거 window.removeEventListener('popstate', this.popstateHandler); }, // 확인 대화상자와 함께 뒤로가기 막기 preventBackNavigationWithConfirm: function(message) { history.pushState(null, null, location.href); window.addEventListener('popstate', function(event) { if (confirm(message || '정말로 페이지를 떠나시겠습니까?')) { // 사용자가 확인을 누르면 뒤로가기 허용 history.back(); } else { // 취소를 누르면 현재 페이지 유지 history.pushState(null, null, location.href); } }); } };