因项目的需求,在微信浏览器点击返回的时候 在特定的条件下不允许返回上级页面,因此需要对它自带的返回键进行一个监听处理。
<script>
$(function(){
pushHistory();
window.addEventListener("popstate", function(e) {
if(${photo != null}) {
/*返回前三个页面*/
window.history.go(-3);
}else{
/*返回上一个页面*/
window.history.go(-1);
}
}, false);
function pushHistory() {
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}
});
</script>
详细解析popstate事件
popstate是在进行浏览器在进行操作才会触发的事件;
window.history.go(num):num是正数为前进,反之则为后退
历史记录
pushState(state, “title",url):增加一条历史记录
在页面中创建一个 history 实体。直接添加到历史记录中。
replaceState(state, “title" ,url):替换当前网页的历史记录
- state:存储一个对象,可以添加相关信息,可以使用 history.state 读取其中的内容,但是存在跨域的问题,需要对域名进行处理,否则popstate监控事件不可用。
- title:历史记录的标题。
- url:创建的历史记录的链接。进行历史记录操作时会跳转到该链接。