window.history.go(-1) 无效,不回退页面

问题描述:
 
 
如上提现页面,点击 “确认提现”按钮后,ajax请求服务端,成功后 window.history.go(-1); 回退到上一页面;
但是实际运行时,没有回退,还是在当前页面,为什么?
html 代码:
<id="a_withdrawal" onclick="withdrawal()href="#" >确认提现</a>
 
js代码:
      function withdrawal(){
            $.ajax({
                url:purl,//表单action值
                type'post',
                data{money:$(".withdrawal_amount").val(), passworddes.getDes(passwd)},
                dataType:"json",
                successfunction(datastatus){
                    window.history.go(-1);
                }
            });
            return false;
        }
 
问题分析:
问题的关键在于 html里用的是 <a>标签,并且设置了 href=“#”  ,在我们点击的时候触发了withdrawal()函数的同时,href="#",也执行了,那么window.history里就有了两个当前页面,所以 window.history.go(-1); 时回退还是在当前页面。
 
问题解决:
其实问题的原因是 history里多了一个当前页面,而不是不是go(-1)不起作用,那么执行两遍 window.history.go(-1); 是不是就可以了呢?
是可以,但是这样写代码太傻了!
解决这个问题的一个关键技术点是:  
1 onclick = "ture/false" 
    true 会执行 href的页面跳转,false 不会,除了<a>标签,同样类似的还有 submit类型的btn
2 οnclick="return func()" 和 οnclick="func()" 区别
不加 return 等同于 οnclick="true"
 
所以答案是: onclick="return withdrawal()"  withdrawal()函数返回false
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值