最近接到一个需求,在页面返回的时候须要跳转到指定的连接地址。这也没什么特别。可是作好测试的时候,发如今android设备有个物理/虚拟放回按键,这个返回直接就退出了浏览网页。点击页面中的返回是没问题的。通过各类折腾就是没法实现效果。android
问题以下:
页面实现onpopstate监听返回事件,anroid设备返回按键点击不触发onpopstate事件。 浏览器
部分代码以下:安全
var balink="http://www.baidu.com"; function pushHistory() { var state = { title: "上一页", url: balink }; window.history.pushState(state, "title", "#") } $(function() { pushHistory(); window.addEventListener("popstate", function(e) { if (balink != "") { window.location = balink } }, false) });
测试在火狐浏览器是能够触发popstate事件的微信
尝试解决过程:
1.尝试在网上找解决办法,发现仍是有人也遇到了这些问题的,可是都没有解决办法
测试发现,页面打开后,若是用户点击了页面有交互后,onpopstate事件监听就能正常触发,很奇怪。若是页面打开无任何操做,直接按android返回按钮。事件回调就没触发。直接退出了也退出了浏览器。测试
可是客户须要的效果就是不用用户点击页面,也能监听返回并跳转到指定连接。url
有人说是什么浏览器的问题,有什么安全策略问题。应该都不是主要缘由。spa
2.而后想着自动触发页面body是否可能能够
失败了,无效,不会触发onpopstate事件 code
最后查了下微信浏览器内核的相关资料。引入了一些东西,虽然是完美解决了返回的问题。但仍是没彻底弄明白缘由。blog