2014-03-28 101 views
0

我使用的是​​3210和Eric Martin's SimpleModal。我有以下代码:使用历史记录后退按钮后关闭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

试试这个:

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

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

+0

感谢您的回答。如果我把它放在'window.onstatechange'事件中,它会打破模式,并给我错误'Uncaught TypeError:Can not call method'focus'of undefined'。 –

+0

然后尝试:$(window).on('unload',function(){$ .modal.close();}); –

+0

它没有提供错误,但与以前相同的问题? –

相关问题