Javascript 在modal上使用history和pushState/currentState时,“前进”按钮不工作
我使用历史记录和pushState/currentState来:Javascript 在modal上使用history和pushState/currentState时,“前进”按钮不工作,javascript,jquery,browser-history,html5-history,Javascript,Jquery,Browser History,Html5 History,我使用历史记录和pushState/currentState来: 在触发模式时更改URL 如果按下“后退”按钮或“模式关闭”按钮,则关闭“模式关闭”按钮,然后 返回到上一个URL 如果modal已启动、关闭,且按下前进按钮,则重新打开 选择模式并转到模式URL 除了3个,其他都在工作。我有这个JS,但它似乎不起作用: window.addEventListener('popstate', function (e) { var state = history.state;
window.addEventListener('popstate', function (e) {
var state = history.state;
// back button pressed. close popup
if (!state) {
$(".modal").css({ "display": "none" });
$('body').css('position', 'relative');
}
else {
dataModal = $(this).attr("data-modal");
$("#" + dataModal).css({ "display": "flex" });
$('body').css('position', 'fixed');
}
});
任何帮助都将不胜感激。非常感谢。您的代码中有两个明显的问题:
dataModal=$(this.attr(“数据模式”)代码><代码>此
在此上下文中指的是窗口
对象,因为popstate
事件注册在窗口
上。窗口
没有数据模式
属性,因此数据模式===未定义
pushState
时,您没有将模态id保存在任何位置尝试执行类似于
history.pushState({dataModal:dataModal},title,url)的操作模式触发器事件中的代码>。然后在popstate事件中,您可以执行var dataModal=e.state.dataModal
来获取模式id。谢谢,完成了。