使用H5实现页面后退,不能触发popstate事件,求看一下是什么问题

overself 发布于 2018/05/14 17:02
阅读 1K+
收藏 0

列表页

//页面进入详情页

function goDetail(){
        //前进后退操作
        var dispatchOutId=$("#dispatchOutId").val();
        var companyCode = $("#company").find("em").attr("value");
        var truckTypeCode = $("#trucktype").find("em").attr("value");
        var startTime = $("#startTime").text();
        var endTime = $("#endTime").text();
        var eles = $("#states").find(".focus");
        var arr = new Array();
        var areaCode = $("#area").find("em").attr("value");
        for(var i=0;i<eles.length;i++){
            arr.push($(eles[i]).attr("id"));
        }
        //转换为@连接的字符串
        var dispachStates =covertObj2Str(arr);
        var params ={"companyCode":companyCode,"truckTypeCode":truckTypeCode,"startTime":startTime,"endTime":endTime,"dispachStates":dispachStates,"areaCode":areaCode,"dispatchOutId":dispatchOutId,"inOut":arguments[2]};
        history.replaceState(params,"派车单查询",location.href.split("?")[0] + "?"+"dispatchOutOid="+arguments[0]);
        //详情页跳转
            window.location.href="${base}/wechat/dispatchInfo.html     
        }

添加事件监听
window.addEventListener("popstate",function(e){
        var param = this.href.split("?")[1];
        if(param){
            var state = history.state;
            $("#dispatchOutId").val(state.dispatchOutId);
            $("#area").find("em").attr("value",state.areaCode);
            $("#company").find("em").attr("value",state.companyCode);
            $("#trucktype").find("em").attr("value",state.truckTypeCode);
            $("#startTime").text(state.startTime);
            $("#endTime").text(state.endTime);
            var eleArray  = $("#states").find("a");
            var valArray = state.dispachStates.split("@");
            
            for(var e in elaArray){
                var value = $(e).attr("id");
                if($.inArray(value,valArray)!=-1){
                    $(e).addClass("focus");
                }
            }
        }
        query();
    });
详情页面在 a标签上使用history.back(-1);


这样在进入详情页进行后退是popstate总是触发不了,求大神看一下什么原因

加载中
返回顶部
顶部