문제

StackOverflow에서 새 질문을 할 때 질문을 입력하고 페이지에서 벗어나기로 결정하면 "확실합니까?"라는 확인 메시지가 표시됩니다.

ASP.Net 응용 프로그램에서도 동일한 작업을 수행하고 싶습니다.

사용자는 설문지를 작성해야 하며 답변을 임시로 저장할 수 있는 옵션이 있습니다.사용자가 답변을 일시적으로 저장하지 않고 페이지에서 다른 곳으로 이동하기로 결정한 경우 확인 팝업이 표시되고 사용자에게 답변을 저장하도록 요청합니다.

두 가지 질문:

  • ASP.Net에서 페이지가 언로드되기 전에 확인 팝업을 표시하는 적절한 방법은 무엇입니까?
    beforeunload 이벤트에 대해 알고 있지만 이를 큰 자바스크립트 해킹으로 만들고 싶지는 않습니다.

  • 사용자가 저장 버튼(어차피 답변이 저장됨)을 클릭할 때 확인 메시지가 표시되는 것을 원하지 않습니다.

도움이 되었습니까?

해결책

당신은 행동을 작성해야합니다

onbeforeunload 이벤트

어느 페이지가 내리기 전에 화재가 발생합니다.

<HTML>
<head>
<script>
function closeIt()
{
  return "Any string value here forces a dialog box to \n" + 
         "appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
  <a href="http://www.microsoft.com">Click here to navigate to 
      www.microsoft.com</a>
</body>
</html>

다른 팁

주의를 기울여야합니다 "onbeforunload"이벤트 저장 버튼은 스크립팅 로직을 만들 수 있습니다 (예 :이 이벤트 또는 기타에서 구독 취소).

다음을 시도해 볼 수 있습니다.

<button onclick="javascript:doSend()">send</button>
<button onclick="window.xbuttons +='save ';">save</button>
<button onclick="window.xbuttons +='edit';">edit</button>
<script>
   window.xbuttons = '';
   window.onbeforeunload = function(){
      if(!window.xbuttons.match(/save|edit/))
         return "Do you want to leave this page?";
   }
</script>

onbeforeunload에 대해 주의해야 할 사항은 다음과 같습니다.

  1. 언로드 전 이벤트는 href 속성이 있는 모든 a(앵커 요소)에서 실행됩니다.
  2. 언로드 전 자바스크립트를 통해 또는 주소 표시줄의 URL을 변경하여 문서 위치가 변경되면 이벤트가 시작됩니다.
  3. 언로드 전 이벤트는 다음을 사용하는 모든 이벤트에서 실행됩니다. 자바스크립트: 의사 프로토콜
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top