더북(TheBook)

프로젝트의 구조는 다음과 같다.

/note
  /jsx
      note.jsx
      script.jsx
  /js
      note.jsx
      react.js
      react-dom.js
      script.js
  index.html

 

window.onbeforeunload는 브라우저에서 기본적으로 제공하는 이벤트로 간단하게 사용할 수 있다(크로스 브라우징 지원을 위해 코드를 추가로 작성했다).5

window.addEventListener('beforeunload',function (e) {
  let confirmationMessage = '정말 닫으시겠습니까?'
  e.returnValue = confirmationMessage    // Gecko, Trident, Chrome 34+
  return confirmationMessage             // Gecko, WebKit, Chrome < 34
})

 

다음과 같이 작성할 수도 있다.

window.onbeforeunload = function () {
  ...
  return confirmationMessage
}

 

5   역주 confirmationMessage로 전달하는 메시지는 사용자가 화면에서 벗어날 때 노출할 알림상자의 문구로 쓰기 위해 작성할 수 있다. 그러나 Firefox 4, Chrome 51, Opera 38, Safari 9.1 이후의 브라우저에서는 HTML 명세를 따라 beforeunload 이벤트 핸들러에 의해 노출되는 알림상자에 일반적인 문구만을 보여준다. 또한 사용자 입력이 없는 페이지의 경우에는 이벤트 핸들러와 상관없이 알림상자를 노출하지 않을 수도 있다. 따라서 알림상자를 확인하려면 input에 값을 입력하는 등 간단한 조작이 필요하다. 좀 더 자세한 사항은 다음 문서를 참고하기 바란다.

https://developer.mozilla.org/ko/docs/Web/API/WindowEventHandlers/onbeforeunload

https://html.spec.whatwg.org/multipage/browsing-the-web.html#unloading-documents

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.