Закройте SimpleModal после использования кнопки «Назад» с историей

Я использую History.js и SimpleModal Эрика Мартина. У меня есть следующий код:

jQuery(function() {

   var History = window.History;

   History.Adapter.bind(window,'statechange',function(){
    var State = History.getState();
    History.log(State.data, State.title, State.url);
   });

   ('body').delegate('a', 'click', function () {
        $.modal("<div><h1>Test</h1></div>", {
            close: true,
            opacity: 70,
            onShow: function (){
                History.pushState({state:1}, "State 1", "?state=1");
            },
            onClose: function (){
                History.back();
                $.modal.close();
            }
        });
   });
});

Прямо сейчас, если вы нажмете на ссылку и появится модальное окно, оно изменит состояние так, как должно. Если вы закроете модальное окно, оно тоже работает нормально.

Единственное, что не работает, это если вы открываете модальное окно, а затем используете кнопку «Назад» в браузере, оно меняет состояние, но модальное окно не закрывается. Как я могу закрыть SimpleModal, если он открыт и нажата кнопка «Назад»?


person the_    schedule 28.03.2014    source источник


Ответы (1)


Попробуй это:

$(window).bind("beforeunload", function() {
    $.modal.close();
});

Или с событием «window.onstatechange» History.js.

person Marius Stănescu    schedule 29.03.2014
comment
Спасибо за ответ. Если я поставлю его в событие window.onstatechange, оно нарушит модальность и выдаст мне ошибку Uncaught TypeError: Cannot call method 'focus' of undefined. - person the_; 29.03.2014
comment
Затем попробуйте: $(window).on('unload', function(){ $.modal.close(); }); - person Marius Stănescu; 29.03.2014
comment
Это не дает ошибку, но та же проблема, что и раньше? - person the_; 29.03.2014