公司项目要求指定页面在后退时或者点击返回时监听,从而实现自己的业务逻辑,然后自己在网上看了很多的文档,解决的方法基本上都是一个逻辑,自己基本都试了一遍,发现几个问题
1、当网页第一次进入该页面时,能监听到返回或者网页后退,但是后面再进入该监听页面时,不进行任何操作时只能监听到网页后退,不能监听到手机返回键返回(荣耀手机测试),必须要点击页面上的内容才能监听到手机返回
2、在监听页面刷新是也会触发监听,所以我用了setTimeout来解决,代码如下
$(function(){
//判断指定页面
if(typeof myFIle !== "undefined"){
//向历史纪录追加数据
function pushHistory() {
var state = {
title: "title",
url: "#"
};
window.history.pushState(state, "title", "#");
}
pushHistory();
//延时监听防止页面刷新时被触发
setTimeout(function () {
window.addEventListener("popstate", function(e) {
//TODO 监听成功
}, false);
},1000);
}
});