2016-04-29 4 views
0

Я пытаюсь использовать $(window).on('beforeunload', function(){}); и editor.session.getUndoManager().isClean(); в редакторе туза, чтобы проверить, внесены ли пользователем изменения в документ, но не нажал кнопку отправки, но для какой-то причине он не работает Вот код:проверка редактора туза в onbeforeunload, чтобы узнать, были ли внесены изменения.

editor.on('change', function(Isclean) { 
     var Isclean = editor.session.getUndoManager().isClean(); 
    }); 
var submitting = false; 

$(window).on('beforeunload', function(){ 
    if (submitting == false && Isclean == false) { 
      return "You have made some changes in the editor."; 
    }; 
}); 

Но по какой причине Isclean всегда возвращает логическое значение в действительности.

ответ

0

Для того, чтобы выполнить эту задачу, я сделал:

$(window).bind("load", function() { 
    editor.session.getUndoManager().markClean(); 
}); 

Я предварительной загрузки некоторые JSon в редакторе так, если я назвал editor.session.getUndoManager().markClean(); как последняя вещь, чтобы загрузить (и это должно быть последним для загрузки), он всегда будет логическим для false.

1

Есть пара проблем с кодом. В обработчике событий «change» аргумент функции и локальная переменная называются Isclean.

Во-вторых, переменная Isclean не отображается в обработчике событий «beforeunload».

+0

Итак, как передать локальную переменную в on beforeunload? –

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

  • Нет связанных вопросов^_^