javascript:history.go(-1)的使用

1.问题描述

      在微信项目开发中,比如常用联系人的增删改查操作中,比如跳入常用联系人管理页面,选中一个联系人修改它,就会跳入修改页面,修改完成后跳转到常用联系人管理页面,此时如果修改成功跳转采用的是页面跳转,则用户在按了返回键的话就会返回到修改页面,这是不正常的。

2.解决

      在修改完成后不采用页面跳转的方式,而是采用javascript:history.go(-1),这样返回到了联系人管理页面后再按返回键会直接跳转到个人中心

  同样如果中间连续跳了两个页面,比如修改手机号,从个人信息-->点击修改手机号-->验证手机号密码-->修改手机号-->跳转回个人信息,此时也不应使用页面跳转的方式,而是采用javascript:history.go(-2),这样修改完手机号后返回到个人信息,如果用户再按返回键会直接跳转到个人中心,而不是修改手机号页面。

3.代码示例

     修改常用联系人部分ajax请求

        $.ajax({
                url:'${request.contextPath}/wx/contacts/editSubmit.html',
                data:{"id":id,"username":username,"typename":typename,"certificateNo":certificateNo},
                type:'post',
                dataType:'json',
                success:function(data){
                    if(data.code==0){
                        layer.msg(data.message,{icon: 1,time:LAYUIConstant.TIP_TIME});
                        /* setTimeout(function () {
                            location.href="${request.contextPath}/wx/contacts/touristMange.html";
                        }, 1500); */
                        location.href="javascript:history.go(-1)";    //修改成功直接返回到常用联系人管理页面
                    }else{
                        layer.msg(data.message,{icon: 5,time:layUIConstant.TIP_TIME});
                    }
                },
                error:function(data){
                    layer.msg(data.message,{icon: 5,time:LAYUIConstant.TIP_TIME});
                }
            });

修改手机号部分代码

function butSubmit(){
            var mobile = $("#mobile").val();
            if($.trim(mobile)==""){
                layer.msg("请输入手机号!",{icon:5,time:JTDUIConstant.TIP_TIME});
                $("#mobile").focus();
                return;
            }
            var smscode = $("#smscode").val();
            if($.trim(smscode)==""){
                layer.msg("请输入验证码!",{icon:5,time:JTDUIConstant.TIP_TIME});
                $("#smscode").focus();
                return;
            }                    
             $.ajax({
                url : '${request.contextPath}/wx/personalManagement/modifyMobile.html',
                type : 'post',
                data: {"smscode":smscode,"mobile":mobile},    
                dataType:"json",
                success : function(data) {
                    if (data.code == 0) {
                        layer.msg(data.message,{icon:1,time:LAYUIConstant.TIP_TIME});
                        location.href="javascript:history.go(-2)";
                    } else {
                        layer.msg(data.message,{icon:5,time:LAYUIConstant.TIP_TIME});
                        return;
                    }
                },
                error:function(data) {
                    layer.msg(data.message,{icon:5,time:LAYUIConstant.TIP_TIME});            
                }
            });                                     
        }
原文地址:https://www.cnblogs.com/guzhou-ing/p/7560035.html