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