Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用具有历史记录的“后退”按钮后关闭SimpleModel_Javascript_Jquery_Simplemodal_History.js - Fatal编程技术网

Javascript 使用具有历史记录的“后退”按钮后关闭SimpleModel

Javascript 使用具有历史记录的“后退”按钮后关闭SimpleModel,javascript,jquery,simplemodal,history.js,Javascript,Jquery,Simplemodal,History.js,我正在使用和。我有以下代码: 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',

我正在使用和。我有以下代码:

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();
            }
        });
   });
});
jQuery(函数(){
var历史=window.History;
bind(窗口,'statechange',函数(){
var State=History.getState();
日志(State.data、State.title、State.url);
});
('body')。委托('a','click',函数(){
$.modal(“测试”{
接近:是的,
透明度:70,
onShow:function(){
pushState({state:1},“state 1”,“state=1”);
},
onClose:function(){
历史。返回();
$.modal.close();
}
});
});
});
现在,如果您单击链接并显示模式,它会像应该的那样更改状态。如果关闭模态,它也可以正常工作

唯一不起作用的是,如果打开模式,然后使用浏览器的“后退”按钮,它会更改状态,但模式不会关闭。如果SimpleModel处于打开状态且单击了“上一步”按钮,如何使其关闭?

请尝试以下操作:

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

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

谢谢您的回答。如果我把它放在
窗口.onstatechange
事件中,它会破坏模式并给我错误
未捕获类型错误:无法调用未定义的
的方法'focus'。然后尝试:$(window).on('unload',function(){$.modal.close();});它没有给出错误,但是和以前一样的问题?