使用带历史记录的后退按钮后关闭SimpleModal

时间:2014-03-28 23:55:52

标签: javascript jquery simplemodal history.js

我正在使用History.jsEric Martin's 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打开并单击后退按钮,我如何才能关闭它?

1 个答案:

答案 0 :(得分:1)

试试这个:

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

或者使用“window.onstatechange”History.js事件。