在ios10.2系统之下,微信内核升级为WKwebview内核之后,进行了一系列改变,其中一部分便是返回按钮事件,取消了返回之后的刷新功能。
而在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回、后退、上一页等按钮实现自己的关闭页面、调整到指定页面或执行一些其它操作的需求,那在代码中怎样监听当点击微信、支付宝、百度糯米、百度钱包等app的返回按钮或者浏览器的上一页或后退按钮的事件呢?
首先我们需要知道如何来监听这个返回事件:
返回、后退、上一页按钮点击监听实现代码:
window.addEventListener("popstate",function(e) {
alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能
},false);
然后我们要了解H5的history,,它的API如下:
1. history.pushState与history.replaceState。
A)history.length:当前历史列表中的历史记录数(我大概测了下,IE6+是从0开始的,其他的是从1开始的,若有误请反馈哈,(^_^);
B)history.Go(n):前进或后退n条记录,当n=0或空时会刷新当前页;
C)history.back():后退一步;
D)history.forward():前进一步;
2.HTML5新增的API
A)history.pushState(data, title [, url]):往历史记录堆栈顶部添加一条记录; data会在onpopstate事件触发时作为
参数传递过去;title为页面标题,当前所有浏览器都会 忽略此参数;url为页面地址,可选,缺省为当前页地址;
B)history.replaceState(data, title [, url]) :更改当前的历史记录,参数同上;
C)history.state:用于存储以上方法的data数据,不同浏览器的读写权限不一样;
D)window.onpopstate:响应pushState或replaceState的调用;有了这几个新的API,针对支持的浏览器,