我正在使用pushState,并且根据当前页面的history.state在popstate事件上生成页面视图。
如果没有history.state,我希望重新加载文档。
问题在于Safari会在初始页面加载时触发popstate事件。Chrome和Firefox在浏览器的后退/前进按钮上触发popstate事件。
我想忽略Safari上的初始加载popstate事件(最好不使用setTimeout和浏览器检测)。
此外,该网站是链接的混合体——有些链接将触发pushState,而有些链接将从服务器正常加载——因此,如果用户进行了十页的导航历史记录并单击“回退”按钮,则历史记录将包含pushState页面和非pushState页面。
如果没有history.state,我希望重新加载文档。
window.onpopstate = function(event) {
if( window.history.state !== null ){
// page was ajax created and history created by pushState
// recreate with ajax
}
else{
// page was loaded from server normally
document.location.reload()
}
}
问题在于Safari会在初始页面加载时触发popstate事件。Chrome和Firefox在浏览器的后退/前进按钮上触发popstate事件。
我想忽略Safari上的初始加载popstate事件(最好不使用setTimeout和浏览器检测)。
此外,该网站是链接的混合体——有些链接将触发pushState,而有些链接将从服务器正常加载——因此,如果用户进行了十页的导航历史记录并单击“回退”按钮,则历史记录将包含pushState页面和非pushState页面。