js 监听浏览器的返回按钮事件在安卓和ios的坑

$(function(){ pushHistory(); window.addEventListener("popstate", function(e) { //回调函数中实现需要的功能 //alert("我监听到了浏览器的返回按钮事件啦"); location.href='{{url('iCheck')}}'; //在这里指定其返回的地址 // WeixinJSBridge.call('closeWindow'); }, false); }); function pushHistory() { var state = { title: "下单成功", url:'#' //url: "{{url('paysuccess')}}/{{$info['OrderNo']}}" }; window.history.pushState(state, state.title, state.url); }这方法在安卓上完全正常,在ios就反常了,在ios上这个监听事件在当前页面及后面的页面都起作用,请大牛们帮忙看看是哪里错了,急急急!!!!!!!!!!!!!!!!在线等!!!!!!!!

这是ajax的一个经典问题,很多框架都提供了解决方案,重点是模拟浏览器的前进后退。

对于IE,可以用一个隐藏框架,对框架内容的导航会使得前进后退按钮被触发。
对以FF,可以用Hash,即改变http://www.url.com/#abc井号后面的部分,前进后退按钮同样被触发。

这样就能既让浏览器前进后退按钮被触发,同时又不离开本页面。具体方法如下:

1.resize事件 (window).resize(function() { var width = (this).width(); var height = (this).height(); });

2.js条用这个方法 function closewindow{ history.go(-1); }

3.<input type="button" value="后退" onClick="history.back();"> 或 <input type="button" value="后退" onClick="history.go(-1);">
4.window.location.replace Location对象的replace()方法将用指定的URL替换浏览器历史列表中的当前URL,而不是在历史列表中创建一个新的项,因此,就不能使用IE的后退按钮来返回原始文档了。 2.window.open(FF无效...
温馨提示:答案为网友推荐,仅供参考
相似回答