Вопрос

На Stackoverflow, когда вы задаете новый вопрос, вы введите вопрос, и если вы решите уйти от страницы, вы получите подтверждение «вы уверены».

Я хотел бы сделать то же самое в моем приложении ASP.NET:

Пользователь должен заполнить анкету и иметь возможность временно хранить свои ответы. Если пользователь решит уйти от страницы, не временно сохраняя его ответы, мы хотели бы подтвердить всплывающее окно и попросить пользователя хранить его ответы.

Два вопроса:

  • Какой приличный способ показать всплывающее окно подтверждения, прежде чем страница разгружается в ASP.NET?
    Я знаю о событии Thenunlload, но я не хочу делать это один большой взлом JavaScript.

  • Я не хочу, чтобы подтверждение началось, когда пользователь нажимает кнопку «Сохранить» (которая в любом случае сохраняет ответы)

Это было полезно?

Решение

Вы должны написать действие в

OnbeForeUnload Event

который Пожары до разгрузки страницы.

<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>

Другие советы

Вы должны обратить внимание на Событие "OnbeforUrulload" Что касается кнопки «Сохранить», вы можете сделать некоторую логику сценариев, например, отписаться на это событие или еще.

Вы можете попробовать это:

<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>

Вот вещи, которые вы должны отметить, о RforeUunload:

  1. OnbeForeUnload Событие будет стрелять по каждому (якорным элементам) с атрибутом href
  2. OnbeForeUnload Событие будет снимать, когда местоположение документа будет изменено через JavaScript или путем изменения URL -адреса в адресной строке
  3. OnbeForeUnload Событие будет запускать на любое событие, которое использует JavaScript: псевдопротокол
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top