Я использую History.js и Eric Martin 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 закрываться, если он открыт, и нажата кнопка "Назад"?
Попробуй это:
$(window).bind("beforeunload", function() {
$.modal.close();
});
Или с событием history.js "window.onstatechange".
window.onstatechange
, оно нарушает модальное состояние и выдает ошибкуUncaught TypeError: Cannot call method 'focus' of undefined
.