通過監(jiān)聽popstate事件,來判斷是否點擊返回按鈕,比如從A頁面跳轉到B頁面(監(jiān)聽popstate)褐澎,然后再跳轉到C頁面会钝,點擊返回的按鈕,測試成功工三,包括安卓版迁酸,但是問題來了,IOS版的微信俭正,是會立即觸發(fā)popstate事件奸鬓,導致直接從C頁面跳轉到A頁面,其他的支付寶(安卓掸读、IOS)串远、微信(安卓)都是可以,就是微信IOS版不行儿惫。
經(jīng)過查找相關資料澡罚,選擇了一個方法,不過有點弊端肾请,但是并不影響操作留搔,通過popstate、pageshow兩個事件進行判斷驗證铛铁。
/**
* 瀏覽器回退事件監(jiān)聽
*/varlistenerBackHandler = {? ? ? param: {? ? ? ? ? isRun:false,//防止微信返回立即執(zhí)行popstate事件? },? ? ? listenerBack:function(){varstate = {? ? ? ? ? ? ? title:"title",? ? ? ? ? ? ? url:"#"};? ? ? ? ? window.history.pushState(state,"title","#");? ? ? ? ? window.addEventListener("popstate",function(e){if(listenerBackHandler.param.isRun) {? ? ? ? ? ? ? ? ? ? ? window.location.href ="Home/Index";//返回到主頁? }? ? ? ? ? ? ? }? ? ? ? ? },false);? ? ? },//初始化返回事件? initBack:function(){window.addEventListener('pageshow',function(){listenerBackHandler.param.isRun =false;? ? ? ? ? ? ? setTimeout(function(){listenerBackHandler.param.isRun =true; },1000);//延遲1秒 防止微信返回立即執(zhí)行popstate事件? listenerBackHandler.listenerBack();? ? ? ? ? });? ? ? }? }
轉載:http://blog.csdn.net/sinat_37138973/article/details/79098763