2015-12-21 5 views
0

Ниже приводится код, который я написал для спрашивать подтверждение пользователя на странице выгрузки:Javascript: Не удается показать предупреждение, прежде чем страница разгрузить

$(document).ready(function() { 
     var pageLeaveEvent = window.attachEvent || window.addEventListener; 
     var checkedEvent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; //Make IE7, IE8 compatible. 

     pageLeaveEvent(checkedEvent, function (e) { //For >= IE7, Chrome & Firefox. 
      debugger; 
      return 'Are you sure you want to leave page?'; 
     }); 
    }); 

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

В качестве побочного примечания, ранее я использовал тот же код в проекте ASP.NET MVC, и он работал, теперь я пытаюсь получить тот же код, который работает в проекте ASP.NET Web Forms. Я нашел этот код here.

+0

Если удалить 'debugger' ... –

+0

Еще не повезло :-( –

+1

Вам нужно установить retrunValue свойство события:' уаг Сообщ = «? Вы уверены, что хотите покинуть страницу»; (е | | window.event) .returnValue = msg; return msg; '[DOC] (https://developer.mozilla.org/en/docs/Web/Events/beforeunload) ** && ** [DEMO] (http: //jsfiddle.net/h6L6u7yu/) –

ответ

0

вы пропустили конфигурацию событий ReturnValue, как в учебнике вы связаны:

(e || window.event).returnValue = 'your_message'; 

Добавьте его в свой обратный вызов, и он будет работать нормально. ?

Смежные вопросы